René's URL Explorer Experiment


Title: Let clang on Linux and clang-cl on Windows "see" more optimizing macros · Issue #131033 · python/cpython · GitHub

Open Graph Title: Let clang on Linux and clang-cl on Windows "see" more optimizing macros · Issue #131033 · python/cpython

X Title: Let clang on Linux and clang-cl on Windows "see" more optimizing macros · Issue #131033 · python/cpython

Description: Feature or enhancement Proposal: Here are a few optimizing macros, some of which clang under Linux does not "see", because https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-fgnuc-version Sets various macros to cl...

Open Graph Description: Feature or enhancement Proposal: Here are a few optimizing macros, some of which clang under Linux does not "see", because https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang...

X Description: Feature or enhancement Proposal: Here are a few optimizing macros, some of which clang under Linux does not "see", because https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdop...

Opengraph URL: https://github.com/python/cpython/issues/131033

X: @github

direct link

Domain: github.com


Hey, it has json ld scripts:
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Let clang on Linux and clang-cl on Windows \"see\" more optimizing macros","articleBody":"# Feature or enhancement\n\n### Proposal:\n\nHere are a few optimizing macros, some of which clang under Linux does not \"see\", because\n- https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-fgnuc-version\n     \u003eSets various macros to claim compatibility with the given GCC version (default is 4.2.1)\n- verified on https://godbolt.org/z/Gah6sh8EE\n\nNone of these are seen by clang-cl on Windows, because there \n- clang-cl does not set `__GNUC__` (most probably because too much code out there would then assume \"ah - I am on Linux\")\n- but clang-cl does set `__clang__`\n\n**IMHO, \"syncing\" them between GCC/clang on Linux and clang-cl on Windows is preferable.**\n\n\nNeither seen on Linux nor on Windows: https://github.com/python/cpython/pull/130891 would fix:\nhttps://github.com/python/cpython/blob/98fa4a49fecbac3c990a25ce5d300592dad31be0/Include/pyport.h#L323-L325\n\n\nSeen on Linux, not seen on Windows: https://github.com/python/cpython/pull/131019 would fix:\nhttps://github.com/python/cpython/blob/98fa4a49fecbac3c990a25ce5d300592dad31be0/Objects/obmalloc.c#L1460-L1462\n\n\nSeen on Linux, not seen on Windows:\nhttps://github.com/python/cpython/blob/98fa4a49fecbac3c990a25ce5d300592dad31be0/Modules/expat/expat_external.h#L115-L117\n\nNeither seen on Linux nor on Windows:\nhttps://github.com/python/cpython/blob/98fa4a49fecbac3c990a25ce5d300592dad31be0/Modules/expat/expat_external.h#L122-L124\n\nThe last two are in vendored code, but I've temporarily modified it (https://github.com/python/cpython/pull/131019/commits/01183d746dec877aac6caf204b7beac2c67ee26c) and then reverted again (https://github.com/python/cpython/pull/131019/commits/1c4a55d9a75fcea3c88ea489f50c1527a30d996a)\n\n\nEnabling them all for clang-cl on Windows is performance neutral wrt to the pyperformance benchmark.\n\n| Benchmark                       | clang.release.19.1.1.92e5f826ac | clang.release.19.1.1.16a7f4607e.pyHot |\n|---------------------------------|:-------------------------------:|:-------------------------------------:|\n| Geometric mean                  | (ref)                           | 1.01x faster                          |\n\n| Benchmark                 | clang.pgo.19.1.1.92e5f826ac | clang.pgo.19.1.1.16a7f4607e.pyHot |\n|---------------------------|:---------------------------:|:---------------------------------:|\n| Geometric mean            | (ref)                       | 1.01x slower                      |\n\n| Benchmark                     | clang.release.20.1.0-rc2.92e5f826ac | clang.release.20.1.0-rc2.16a7f4607e.pyHot |\n|-------------------------------|:-----------------------------------:|:-----------------------------------------:|\n| Geometric mean                | (ref)                               | 1.01x faster                              |\n\n| Benchmark                | clang.pgo.20.1.0-rc2.92e5f826ac | clang.pgo.20.1.0-rc2.16a7f4607e.pyHot |\n|--------------------------|:-------------------------------:|:-------------------------------------:|\n| Geometric mean           | (ref)                           | 1.00x slower                          |\n\n\u003cdetails\u003e\u003csummary\u003eDetails\u003c/summary\u003e\n\u003cp\u003e\n\n| Benchmark                       | clang.release.19.1.1.92e5f826ac | clang.release.19.1.1.16a7f4607e.pyHot |\n|---------------------------------|:-------------------------------:|:-------------------------------------:|\n| telco                           | 11.9 ms                         | 10.9 ms: 1.10x faster                 |\n| xml_etree_parse                 | 236 ms                          | 217 ms: 1.09x faster                  |\n| logging_format                  | 15.8 us                         | 15.0 us: 1.05x faster                 |\n| async_tree_eager                | 145 ms                          | 138 ms: 1.05x faster                  |\n| async_tree_none_tg              | 375 ms                          | 358 ms: 1.05x faster                  |\n| unpickle_list                   | 5.83 us                         | 5.57 us: 1.05x faster                 |\n| xml_etree_iterparse             | 157 ms                          | 150 ms: 1.05x faster                  |\n| unpickle                        | 23.0 us                         | 22.0 us: 1.05x faster                 |\n| async_tree_memoization_tg       | 460 ms                          | 442 ms: 1.04x faster                  |\n| xml_etree_generate              | 142 ms                          | 137 ms: 1.04x faster                  |\n| nqueens                         | 125 ms                          | 120 ms: 1.04x faster                  |\n| async_tree_memoization          | 490 ms                          | 472 ms: 1.04x faster                  |\n| async_tree_io                   | 876 ms                          | 844 ms: 1.04x faster                  |\n| logging_simple                  | 14.3 us                         | 13.8 us: 1.04x faster                 |\n| deepcopy_reduce                 | 3.92 us                         | 3.78 us: 1.04x faster                 |\n| crypto_pyaes                    | 104 ms                          | 101 ms: 1.04x faster                  |\n| pprint_pformat                  | 2.18 sec                        | 2.10 sec: 1.04x faster                |\n| async_tree_none                 | 391 ms                          | 378 ms: 1.03x faster                  |\n| pprint_safe_repr                | 1.06 sec                        | 1.02 sec: 1.03x faster                |\n| async_tree_eager_memoization    | 290 ms                          | 281 ms: 1.03x faster                  |\n| json_dumps                      | 16.5 ms                         | 16.0 ms: 1.03x faster                 |\n| fannkuch                        | 580 ms                          | 562 ms: 1.03x faster                  |\n| scimark_sparse_mat_mult         | 5.76 ms                         | 5.59 ms: 1.03x faster                 |\n| async_tree_eager_io             | 822 ms                          | 798 ms: 1.03x faster                  |\n| xml_etree_process               | 96.4 ms                         | 93.7 ms: 1.03x faster                 |\n| async_tree_eager_tg             | 307 ms                          | 299 ms: 1.03x faster                  |\n| scimark_fft                     | 481 ms                          | 470 ms: 1.03x faster                  |\n| coroutines                      | 31.9 ms                         | 31.2 ms: 1.02x faster                 |\n| async_tree_io_tg                | 853 ms                          | 834 ms: 1.02x faster                  |\n| pathlib                         | 255 ms                          | 250 ms: 1.02x faster                  |\n| typing_runtime_protocols        | 224 us                          | 220 us: 1.02x faster                  |\n| django_template                 | 53.7 ms                         | 52.8 ms: 1.02x faster                 |\n| sympy_expand                    | 650 ms                          | 640 ms: 1.02x faster                  |\n| unpickle_pure_python            | 305 us                          | 300 us: 1.02x faster                  |\n| async_tree_eager_memoization_tg | 411 ms                          | 405 ms: 1.02x faster                  |\n| async_tree_cpu_io_mixed_tg      | 752 ms                          | 741 ms: 1.02x faster                  |\n| chaos                           | 88.2 ms                         | 86.9 ms: 1.02x faster                 |\n| sqlite_synth                    | 3.57 us                         | 3.52 us: 1.01x faster                 |\n| tomli_loads                     | 2.70 sec                        | 2.66 sec: 1.01x faster                |\n| pickle_pure_python              | 444 us                          | 438 us: 1.01x faster                  |\n| sqlglot_normalize               | 150 ms                          | 148 ms: 1.01x faster                  |\n| regex_compile                   | 171 ms                          | 169 ms: 1.01x faster                  |\n| mako                            | 17.3 ms                         | 17.1 ms: 1.01x faster                 |\n| sqlglot_parse                   | 1.67 ms                         | 1.65 ms: 1.01x faster                 |\n| sympy_sum                       | 211 ms                          | 208 ms: 1.01x faster                  |\n| hexiom                          | 8.26 ms                         | 8.19 ms: 1.01x faster                 |\n| sqlglot_transpile               | 2.06 ms                         | 2.04 ms: 1.01x faster                 |\n| sqlglot_optimize                | 74.0 ms                         | 73.4 ms: 1.01x faster                 |\n| python_startup                  | 43.2 ms                         | 42.9 ms: 1.01x faster                 |\n| async_generators                | 540 ms                          | 536 ms: 1.01x faster                  |\n| gc_traversal                    | 4.82 ms                         | 4.79 ms: 1.01x faster                 |\n| comprehensions                  | 23.2 us                         | 23.1 us: 1.01x faster                 |\n| generators                      | 38.1 ms                         | 37.8 ms: 1.01x faster                 |\n| richards_super                  | 73.9 ms                         | 73.4 ms: 1.01x faster                 |\n| deepcopy                        | 376 us                          | 373 us: 1.01x faster                  |\n| genshi_text                     | 29.8 ms                         | 29.6 ms: 1.01x faster                 |\n| pickle_dict                     | 32.3 us                         | 32.2 us: 1.00x faster                 |\n| scimark_sor                     | 168 ms                          | 169 ms: 1.01x slower                  |\n| go                              | 145 ms                          | 146 ms: 1.01x slower                  |\n| pyflate                         | 596 ms                          | 602 ms: 1.01x slower                  |\n| logging_silent                  | 133 ns                          | 135 ns: 1.01x slower                  |\n| dulwich_log                     | 130 ms                          | 132 ms: 1.01x slower                  |\n| regex_v8                        | 35.2 ms                         | 35.6 ms: 1.01x slower                 |\n| spectral_norm                   | 128 ms                          | 130 ms: 1.02x slower                  |\n| docutils                        | 3.60 sec                        | 3.66 sec: 1.02x slower                |\n| sympy_integrate                 | 26.4 ms                         | 26.8 ms: 1.02x slower                 |\n| scimark_monte_carlo             | 90.7 ms                         | 92.6 ms: 1.02x slower                 |\n| float                           | 102 ms                          | 105 ms: 1.02x slower                  |\n| 2to3                            | 429 ms                          | 439 ms: 1.02x slower                  |\n| nbody                           | 151 ms                          | 155 ms: 1.03x slower                  |\n| genshi_xml                      | 71.7 ms                         | 74.2 ms: 1.04x slower                 |\n| Geometric mean                  | (ref)                           | 1.01x faster                          |\n\n| Benchmark                 | clang.pgo.19.1.1.92e5f826ac | clang.pgo.19.1.1.16a7f4607e.pyHot |\n|---------------------------|:---------------------------:|:---------------------------------:|\n| 2to3                      | 465 ms                      | 380 ms: 1.22x faster              |\n| async_generators          | 506 ms                      | 490 ms: 1.03x faster              |\n| coroutines                | 27.1 ms                     | 26.4 ms: 1.03x faster             |\n| pidigits                  | 233 ms                      | 228 ms: 1.02x faster              |\n| pickle_dict               | 27.8 us                     | 27.3 us: 1.02x faster             |\n| sympy_sum                 | 187 ms                      | 184 ms: 1.02x faster              |\n| typing_runtime_protocols  | 186 us                      | 183 us: 1.02x faster              |\n| raytrace                  | 309 ms                      | 305 ms: 1.02x faster              |\n| unpickle                  | 16.6 us                     | 16.4 us: 1.01x faster             |\n| genshi_xml                | 60.4 ms                     | 59.5 ms: 1.01x faster             |\n| regex_compile             | 151 ms                      | 149 ms: 1.01x faster              |\n| scimark_sparse_mat_mult   | 4.82 ms                     | 4.77 ms: 1.01x faster             |\n| unpack_sequence           | 55.7 ns                     | 55.1 ns: 1.01x faster             |\n| sqlglot_parse             | 1.42 ms                     | 1.41 ms: 1.01x faster             |\n| sqlglot_transpile         | 1.75 ms                     | 1.73 ms: 1.01x faster             |\n| telco                     | 9.01 ms                     | 8.91 ms: 1.01x faster             |\n| logging_format            | 12.9 us                     | 12.8 us: 1.01x faster             |\n| unpickle_list             | 5.04 us                     | 4.99 us: 1.01x faster             |\n| nqueens                   | 95.3 ms                     | 94.4 ms: 1.01x faster             |\n| async_tree_eager_io       | 720 ms                      | 714 ms: 1.01x faster              |\n| sympy_expand              | 556 ms                      | 551 ms: 1.01x faster              |\n| scimark_lu                | 124 ms                      | 123 ms: 1.01x faster              |\n| docutils                  | 3.09 sec                    | 3.07 sec: 1.01x faster            |\n| chaos                     | 69.1 ms                     | 68.7 ms: 1.01x faster             |\n| sqlglot_optimize          | 63.5 ms                     | 63.1 ms: 1.01x faster             |\n| sympy_integrate           | 22.9 ms                     | 22.7 ms: 1.01x faster             |\n| spectral_norm             | 106 ms                      | 105 ms: 1.00x faster              |\n| scimark_fft               | 352 ms                      | 351 ms: 1.00x faster              |\n| deepcopy                  | 298 us                      | 300 us: 1.00x slower              |\n| generators                | 34.0 ms                     | 34.2 ms: 1.01x slower             |\n| meteor_contest            | 119 ms                      | 119 ms: 1.01x slower              |\n| logging_silent            | 106 ns                      | 106 ns: 1.01x slower              |\n| tomli_loads               | 2.21 sec                    | 2.22 sec: 1.01x slower            |\n| pickle_pure_python        | 367 us                      | 369 us: 1.01x slower              |\n| regex_effbot              | 3.21 ms                     | 3.24 ms: 1.01x slower             |\n| pyflate                   | 514 ms                      | 518 ms: 1.01x slower              |\n| sqlite_synth              | 3.41 us                     | 3.44 us: 1.01x slower             |\n| deltablue                 | 3.66 ms                     | 3.69 ms: 1.01x slower             |\n| unpickle_pure_python      | 247 us                      | 249 us: 1.01x slower              |\n| nbody                     | 126 ms                      | 128 ms: 1.01x slower              |\n| scimark_sor               | 140 ms                      | 141 ms: 1.01x slower              |\n| mdp                       | 3.13 sec                    | 3.16 sec: 1.01x slower            |\n| pprint_safe_repr          | 891 ms                      | 899 ms: 1.01x slower              |\n| go                        | 126 ms                      | 127 ms: 1.01x slower              |\n| richards_super            | 52.0 ms                     | 52.6 ms: 1.01x slower             |\n| async_tree_eager          | 116 ms                      | 117 ms: 1.01x slower              |\n| regex_dna                 | 204 ms                      | 207 ms: 1.01x slower              |\n| create_gc_cycles          | 1.49 ms                     | 1.51 ms: 1.01x slower             |\n| richards                  | 45.4 ms                     | 46.0 ms: 1.01x slower             |\n| deepcopy_memo             | 33.4 us                     | 34.1 us: 1.02x slower             |\n| async_tree_eager_tg       | 267 ms                      | 273 ms: 1.02x slower              |\n| json_loads                | 31.2 us                     | 31.9 us: 1.02x slower             |\n| pprint_pformat            | 1.79 sec                    | 1.85 sec: 1.03x slower            |\n| gc_traversal              | 5.03 ms                     | 5.28 ms: 1.05x slower             |\n| xml_etree_parse           | 208 ms                      | 220 ms: 1.06x slower              |\n| async_tree_io             | 759 ms                      | 832 ms: 1.10x slower              |\n| asyncio_tcp               | 1.38 sec                    | 1.52 sec: 1.10x slower            |\n| xml_etree_process         | 78.5 ms                     | 87.4 ms: 1.11x slower             |\n| xml_etree_generate        | 114 ms                      | 128 ms: 1.11x slower              |\n| async_tree_memoization_tg | 392 ms                      | 449 ms: 1.15x slower              |\n| async_tree_io_tg          | 746 ms                      | 855 ms: 1.15x slower              |\n| async_tree_memoization    | 414 ms                      | 477 ms: 1.15x slower              |\n| async_tree_none_tg        | 325 ms                      | 382 ms: 1.17x slower              |\n| xml_etree_iterparse       | 141 ms                      | 172 ms: 1.22x slower              |\n| Geometric mean            | (ref)                       | 1.01x slower                      |\n\n| Benchmark                     | clang.release.20.1.0-rc2.92e5f826ac | clang.release.20.1.0-rc2.16a7f4607e.pyHot |\n|-------------------------------|:-----------------------------------:|:-----------------------------------------:|\n| spectral_norm                 | 139 ms                              | 124 ms: 1.13x faster                      |\n| pickle_list                   | 5.89 us                             | 5.46 us: 1.08x faster                     |\n| sqlite_synth                  | 3.71 us                             | 3.51 us: 1.06x faster                     |\n| pickle_dict                   | 32.3 us                             | 30.7 us: 1.05x faster                     |\n| unpickle                      | 20.8 us                             | 20.0 us: 1.04x faster                     |\n| json_loads                    | 43.0 us                             | 41.3 us: 1.04x faster                     |\n| unpickle_list                 | 5.35 us                             | 5.15 us: 1.04x faster                     |\n| mako                          | 16.9 ms                             | 16.3 ms: 1.04x faster                     |\n| pprint_safe_repr              | 1.01 sec                            | 976 ms: 1.03x faster                      |\n| crypto_pyaes                  | 102 ms                              | 98.7 ms: 1.03x faster                     |\n| coverage                      | 111 ms                              | 108 ms: 1.03x faster                      |\n| coroutines                    | 30.3 ms                             | 29.5 ms: 1.03x faster                     |\n| telco                         | 10.4 ms                             | 10.2 ms: 1.03x faster                     |\n| json_dumps                    | 15.6 ms                             | 15.3 ms: 1.02x faster                     |\n| asyncio_websockets            | 547 ms                              | 534 ms: 1.02x faster                      |\n| scimark_sparse_mat_mult       | 5.94 ms                             | 5.81 ms: 1.02x faster                     |\n| pprint_pformat                | 2.07 sec                            | 2.02 sec: 1.02x faster                    |\n| unpickle_pure_python          | 300 us                              | 294 us: 1.02x faster                      |\n| xml_etree_parse               | 218 ms                              | 214 ms: 1.02x faster                      |\n| xml_etree_generate            | 135 ms                              | 133 ms: 1.02x faster                      |\n| async_generators              | 510 ms                              | 501 ms: 1.02x faster                      |\n| typing_runtime_protocols      | 217 us                              | 213 us: 1.02x faster                      |\n| mdp                           | 3.72 sec                            | 3.67 sec: 1.02x faster                    |\n| scimark_fft                   | 437 ms                              | 431 ms: 1.01x faster                      |\n| bench_thread_pool             | 1.79 ms                             | 1.77 ms: 1.01x faster                     |\n| deepcopy_reduce               | 3.71 us                             | 3.66 us: 1.01x faster                     |\n| docutils                      | 3.56 sec                            | 3.52 sec: 1.01x faster                    |\n| async_tree_memoization_tg     | 433 ms                              | 428 ms: 1.01x faster                      |\n| sqlglot_transpile             | 2.02 ms                             | 2.00 ms: 1.01x faster                     |\n| genshi_xml                    | 69.7 ms                             | 69.0 ms: 1.01x faster                     |\n| xml_etree_process             | 92.2 ms                             | 91.3 ms: 1.01x faster                     |\n| fannkuch                      | 539 ms                              | 535 ms: 1.01x faster                      |\n| sqlglot_normalize             | 144 ms                              | 143 ms: 1.01x faster                      |\n| float                         | 102 ms                              | 101 ms: 1.01x faster                      |\n| raytrace                      | 361 ms                              | 358 ms: 1.01x faster                      |\n| sqlglot_parse                 | 1.64 ms                             | 1.63 ms: 1.01x faster                     |\n| gc_traversal                  | 4.84 ms                             | 4.80 ms: 1.01x faster                     |\n| nqueens                       | 117 ms                              | 116 ms: 1.01x faster                      |\n| meteor_contest                | 123 ms                              | 123 ms: 1.01x faster                      |\n| sqlglot_optimize              | 71.4 ms                             | 71.1 ms: 1.00x faster                     |\n| comprehensions                | 23.0 us                             | 22.9 us: 1.00x faster                     |\n| pidigits                      | 240 ms                              | 240 ms: 1.00x faster                      |\n| unpack_sequence               | 55.0 ns                             | 55.2 ns: 1.00x slower                     |\n| chaos                         | 84.3 ms                             | 84.7 ms: 1.00x slower                     |\n| dulwich_log                   | 126 ms                              | 126 ms: 1.00x slower                      |\n| regex_compile                 | 165 ms                              | 166 ms: 1.00x slower                      |\n| hexiom                        | 8.01 ms                             | 8.07 ms: 1.01x slower                     |\n| async_tree_cpu_io_mixed_tg    | 708 ms                              | 714 ms: 1.01x slower                      |\n| async_tree_eager              | 134 ms                              | 135 ms: 1.01x slower                      |\n| richards_super                | 73.2 ms                             | 73.9 ms: 1.01x slower                     |\n| deltablue                     | 4.31 ms                             | 4.35 ms: 1.01x slower                     |\n| asyncio_tcp_ssl               | 3.59 sec                            | 3.64 sec: 1.01x slower                    |\n| 2to3                          | 418 ms                              | 423 ms: 1.01x slower                      |\n| scimark_sor                   | 159 ms                              | 162 ms: 1.02x slower                      |\n| python_startup                | 40.9 ms                             | 41.7 ms: 1.02x slower                     |\n| scimark_lu                    | 143 ms                              | 146 ms: 1.02x slower                      |\n| async_tree_eager_cpu_io_mixed | 551 ms                              | 565 ms: 1.03x slower                      |\n| go                            | 146 ms                              | 150 ms: 1.03x slower                      |\n| generators                    | 38.2 ms                             | 39.7 ms: 1.04x slower                     |\n| nbody                         | 136 ms                              | 142 ms: 1.05x slower                      |\n| Geometric mean                | (ref)                               | 1.01x faster                              |\n\n| Benchmark                | clang.pgo.20.1.0-rc2.92e5f826ac | clang.pgo.20.1.0-rc2.16a7f4607e.pyHot |\n|--------------------------|:-------------------------------:|:-------------------------------------:|\n| pickle_pure_python       | 383 us                          | 364 us: 1.05x faster                  |\n| pprint_safe_repr         | 863 ms                          | 840 ms: 1.03x faster                  |\n| regex_effbot             | 3.20 ms                         | 3.13 ms: 1.02x faster                 |\n| pickle_list              | 4.77 us                         | 4.66 us: 1.02x faster                 |\n| typing_runtime_protocols | 178 us                          | 174 us: 1.02x faster                  |\n| pprint_pformat           | 1.78 sec                        | 1.74 sec: 1.02x faster                |\n| xml_etree_generate       | 110 ms                          | 108 ms: 1.02x faster                  |\n| richards                 | 45.1 ms                         | 44.3 ms: 1.02x faster                 |\n| scimark_sor              | 138 ms                          | 136 ms: 1.01x faster                  |\n| gc_traversal             | 5.21 ms                         | 5.15 ms: 1.01x faster                 |\n| xml_etree_process        | 76.3 ms                         | 75.5 ms: 1.01x faster                 |\n| async_tree_eager         | 113 ms                          | 111 ms: 1.01x faster                  |\n| xml_etree_parse          | 202 ms                          | 201 ms: 1.01x faster                  |\n| nqueens                  | 92.3 ms                         | 91.4 ms: 1.01x faster                 |\n| coroutines               | 24.9 ms                         | 24.7 ms: 1.01x faster                 |\n| mako                     | 13.4 ms                         | 13.3 ms: 1.01x faster                 |\n| meteor_contest           | 118 ms                          | 118 ms: 1.00x faster                  |\n| unpickle_pure_python     | 247 us                          | 246 us: 1.00x faster                  |\n| sqlglot_normalize        | 120 ms                          | 119 ms: 1.00x faster                  |\n| deltablue                | 3.69 ms                         | 3.71 ms: 1.00x slower                 |\n| sympy_integrate          | 22.6 ms                         | 22.7 ms: 1.00x slower                 |\n| deepcopy                 | 289 us                          | 291 us: 1.01x slower                  |\n| sympy_sum                | 181 ms                          | 182 ms: 1.01x slower                  |\n| unpack_sequence          | 55.1 ns                         | 55.4 ns: 1.01x slower                 |\n| 2to3                     | 370 ms                          | 373 ms: 1.01x slower                  |\n| asyncio_tcp_ssl          | 3.52 sec                        | 3.55 sec: 1.01x slower                |\n| sqlite_synth             | 3.20 us                         | 3.22 us: 1.01x slower                 |\n| async_tree_eager_io      | 701 ms                          | 707 ms: 1.01x slower                  |\n| sqlglot_parse            | 1.38 ms                         | 1.40 ms: 1.01x slower                 |\n| pidigits                 | 228 ms                          | 230 ms: 1.01x slower                  |\n| async_tree_io_tg         | 727 ms                          | 735 ms: 1.01x slower                  |\n| dulwich_log              | 115 ms                          | 117 ms: 1.01x slower                  |\n| python_startup           | 39.4 ms                         | 39.9 ms: 1.01x slower                 |\n| chaos                    | 67.0 ms                         | 67.9 ms: 1.01x slower                 |\n| raytrace                 | 299 ms                          | 303 ms: 1.01x slower                  |\n| nbody                    | 119 ms                          | 120 ms: 1.01x slower                  |\n| async_tree_eager_tg      | 260 ms                          | 264 ms: 1.01x slower                  |\n| scimark_lu               | 122 ms                          | 124 ms: 1.02x slower                  |\n| python_startup_no_site   | 34.0 ms                         | 34.5 ms: 1.02x slower                 |\n| regex_dna                | 204 ms                          | 208 ms: 1.02x slower                  |\n| crypto_pyaes             | 81.1 ms                         | 82.7 ms: 1.02x slower                 |\n| scimark_fft              | 341 ms                          | 349 ms: 1.02x slower                  |\n| scimark_sparse_mat_mult  | 4.53 ms                         | 4.65 ms: 1.03x slower                 |\n| sympy_str                | 320 ms                          | 329 ms: 1.03x slower                  |\n| bench_thread_pool        | 1.63 ms                         | 1.68 ms: 1.03x slower                 |\n| deepcopy_reduce          | 2.96 us                         | 3.06 us: 1.03x slower                 |\n| tomli_loads              | 2.20 sec                        | 2.28 sec: 1.03x slower                |\n| pathlib                  | 232 ms                          | 241 ms: 1.04x slower                  |\n| telco                    | 8.45 ms                         | 8.77 ms: 1.04x slower                 |\n| unpickle                 | 15.6 us                         | 16.2 us: 1.04x slower                 |\n| pickle                   | 13.5 us                         | 14.3 us: 1.05x slower                 |\n| async_tree_memoization   | 405 ms                          | 428 ms: 1.06x slower                  |\n| async_tree_io            | 740 ms                          | 784 ms: 1.06x slower                  |\n| Geometric mean           | (ref)                           | 1.00x slower                          |\n\n\n\u003c/p\u003e\n\u003c/details\u003e \n\n\n### Has this already been discussed elsewhere?\n\nThis is a minor feature, which does not need previous discussion elsewhere\n\n### Links to previous discussion of this feature:\n\n_No response_\n\n\u003c!-- gh-linked-prs --\u003e\n### Linked PRs\n* gh-131019\n\u003c!-- /gh-linked-prs --\u003e\n","author":{"url":"https://github.com/chris-eibl","@type":"Person","name":"chris-eibl"},"datePublished":"2025-03-10T08:55:47.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":0},"url":"https://github.com/131033/cpython/issues/131033"}

route-pattern/_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format)
route-controllervoltron_issues_fragments
route-actionissue_layout
fetch-noncev2:7070ef76-39e7-effc-b114-dbaeaa02c38c
current-catalog-service-hash81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114
request-idAA6A:2DE4E0:5EA12A:7C137E:696B4729
html-safe-noncec8542727c4e301104b58053b759bd11fb5546b1ebca672d0f0b31be3ac3c3000
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJBQTZBOjJERTRFMDo1RUExMkE6N0MxMzdFOjY5NkI0NzI5IiwidmlzaXRvcl9pZCI6IjgxMDI2NjM5ODcwMzI0NDI2NjUiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmacda009812861b65cb0896edef7f8f00168a2ca19cce2e150053960e1132cce06d
hovercard-subject-tagissue:2906525256
github-keyboard-shortcutsrepository,issues,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///voltron/issues_fragments/issue_layout
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/python/cpython/131033/issue_layout
twitter:imagehttps://opengraph.githubassets.com/5b72135774c1619c6542071e065153c0de39a3cc6990f24f6957ab277284732b/python/cpython/issues/131033
twitter:cardsummary_large_image
og:imagehttps://opengraph.githubassets.com/5b72135774c1619c6542071e065153c0de39a3cc6990f24f6957ab277284732b/python/cpython/issues/131033
og:image:altFeature or enhancement Proposal: Here are a few optimizing macros, some of which clang under Linux does not "see", because https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang...
og:image:width1200
og:image:height600
og:site_nameGitHub
og:typeobject
og:author:usernamechris-eibl
hostnamegithub.com
expected-hostnamegithub.com
None5f99f7c1d70f01da5b93e5ca90303359738944d8ab470e396496262c66e60b8d
turbo-cache-controlno-preview
go-importgithub.com/python/cpython git https://github.com/python/cpython.git
octolytics-dimension-user_id1525981
octolytics-dimension-user_loginpython
octolytics-dimension-repository_id81598961
octolytics-dimension-repository_nwopython/cpython
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id81598961
octolytics-dimension-repository_network_root_nwopython/cpython
turbo-body-classeslogged-out env-production page-responsive
disable-turbofalse
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release82560a55c6b2054555076f46e683151ee28a19bc
ui-targetcanary-1
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python/cpython/issues/131033#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fissues%2F131033
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub SparkBuild and deploy intelligent appshttps://github.com/features/spark
GitHub ModelsManage and compare promptshttps://github.com/features/models
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fissues%2F131033
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fvoltron%2Fissues_fragments%2Fissue_layout&source=header-repo&source_repo=python%2Fcpython
Reloadhttps://github.com/python/cpython/issues/131033
Reloadhttps://github.com/python/cpython/issues/131033
Reloadhttps://github.com/python/cpython/issues/131033
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/issues/131033
Notifications https://github.com/login?return_to=%2Fpython%2Fcpython
Fork 33.9k https://github.com/login?return_to=%2Fpython%2Fcpython
Star 71.1k https://github.com/login?return_to=%2Fpython%2Fcpython
Code https://github.com/python/cpython
Issues 5k+ https://github.com/python/cpython/issues
Pull requests 2.1k https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects 31 https://github.com/python/cpython/projects
Security Uh oh! There was an error while loading. Please reload this page. https://github.com/python/cpython/security
Please reload this pagehttps://github.com/python/cpython/issues/131033
Insights https://github.com/python/cpython/pulse
Code https://github.com/python/cpython
Issues https://github.com/python/cpython/issues
Pull requests https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects https://github.com/python/cpython/projects
Security https://github.com/python/cpython/security
Insights https://github.com/python/cpython/pulse
New issuehttps://github.com/login?return_to=https://github.com/python/cpython/issues/131033
New issuehttps://github.com/login?return_to=https://github.com/python/cpython/issues/131033
Let clang on Linux and clang-cl on Windows "see" more optimizing macroshttps://github.com/python/cpython/issues/131033#top
buildThe build process and cross-buildhttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22build%22
performancePerformance or resource usagehttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22performance%22
type-featureA feature request or enhancementhttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22type-feature%22
https://github.com/chris-eibl
https://github.com/chris-eibl
chris-eiblhttps://github.com/chris-eibl
on Mar 10, 2025https://github.com/python/cpython/issues/131033#issue-2906525256
https://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-fgnuc-versionhttps://clang.llvm.org/docs/ClangCommandLineReference.html#cmdoption-clang-fgnuc-version
https://godbolt.org/z/Gah6sh8EEhttps://godbolt.org/z/Gah6sh8EE
#130891https://github.com/python/cpython/pull/130891
cpython/Include/pyport.hhttps://github.com/python/cpython/blob/98fa4a49fecbac3c990a25ce5d300592dad31be0/Include/pyport.h#L323-L325
98fa4a4https://github.com/python/cpython/commit/98fa4a49fecbac3c990a25ce5d300592dad31be0
#131019https://github.com/python/cpython/pull/131019
cpython/Objects/obmalloc.chttps://github.com/python/cpython/blob/98fa4a49fecbac3c990a25ce5d300592dad31be0/Objects/obmalloc.c#L1460-L1462
98fa4a4https://github.com/python/cpython/commit/98fa4a49fecbac3c990a25ce5d300592dad31be0
cpython/Modules/expat/expat_external.hhttps://github.com/python/cpython/blob/98fa4a49fecbac3c990a25ce5d300592dad31be0/Modules/expat/expat_external.h#L115-L117
98fa4a4https://github.com/python/cpython/commit/98fa4a49fecbac3c990a25ce5d300592dad31be0
cpython/Modules/expat/expat_external.hhttps://github.com/python/cpython/blob/98fa4a49fecbac3c990a25ce5d300592dad31be0/Modules/expat/expat_external.h#L122-L124
98fa4a4https://github.com/python/cpython/commit/98fa4a49fecbac3c990a25ce5d300592dad31be0
01183d7https://github.com/python/cpython/commit/01183d746dec877aac6caf204b7beac2c67ee26c
1c4a55dhttps://github.com/python/cpython/commit/1c4a55d9a75fcea3c88ea489f50c1527a30d996a
GH-131033: Enable the optimizing macros UNLIKELY and LIKELY for clang-cl on Windows #131019https://github.com/python/cpython/pull/131019
buildThe build process and cross-buildhttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22build%22
performancePerformance or resource usagehttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22performance%22
type-featureA feature request or enhancementhttps://github.com/python/cpython/issues?q=state%3Aopen%20label%3A%22type-feature%22
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.