| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1428,7 +1428,6 @@ end users running Python do not need LLVM installed. Instructions for | |||
| 1428 | 1428 | installing LLVM can be found in the `JIT compiler documentation | |
| 1429 | 1429 | <https://github.com/python/cpython/blob/main/Tools/jit/README.md>`__ | |
| 1430 | 1430 | for all supported platforms. | |
| 1431 | - | ||
| 1432 | 1431 | (Contributed by Savannah Ostrowski in :gh:`140973`.) | |
| 1433 | 1432 | ||
| 1434 | 1433 | .. rubric:: A new tracing frontend | |
@@ -1440,7 +1439,6 @@ code. For example, simple Python object creation is now understood by the | |||
| 1440 | 1439 | supported. This was made possible by an overhauled JIT tracing frontend | |
| 1441 | 1440 | that records actual execution paths through code, rather than estimating | |
| 1442 | 1441 | them as the previous implementation did. | |
| 1443 | - | ||
| 1444 | 1442 | (Contributed by Ken Jin in :gh:`139109`. Support for Windows added by | |
| 1445 | 1443 | Mark Shannon in :gh:`141703`.) | |
| 1446 | 1444 | ||
@@ -1450,35 +1448,40 @@ A basic form of register allocation has been added to the JIT compiler's | |||
| 1450 | 1448 | optimizer. This allows the JIT compiler to avoid certain stack operations | |
| 1451 | 1449 | altogether and instead operate on registers. This allows the JIT to produce | |
| 1452 | 1450 | more efficient traces by avoiding reads and writes to memory. | |
| 1453 | - | ||
| 1454 | 1451 | (Contributed by Mark Shannon in :gh:`135379`.) | |
| 1455 | 1452 | ||
| 1456 | 1453 | .. rubric:: More JIT optimizations | |
| 1457 | 1454 | ||
| 1458 | 1455 | More `constant-propagation <https://en.wikipedia.org/wiki/Constant_folding>`__ | |
| 1459 | 1456 | is now performed. This means when the JIT compiler detects that certain user | |
| 1460 | 1457 | code results in constants, the code can be simplified by the JIT. | |
| 1461 | - | ||
| 1462 | 1458 | (Contributed by Ken Jin and Savannah Ostrowski in :gh:`132732`.) | |
| 1463 | 1459 | ||
| 1464 | - The JIT avoids :term:`reference count`\ s where possible. This generally | ||
| 1460 | + :term:`Reference count`\ s are avoided whenever it is safe to do so. This generally | ||
| 1465 | 1461 | reduces the cost of most operations in Python. | |
| 1466 | - | ||
| 1467 | 1462 | (Contributed by Ken Jin, Donghee Na, Zheao Li, Hai Zhu, Savannah Ostrowski, | |
| 1468 | 1463 | Reiden Ong, Noam Cohen, Tomas Roun, PuQing, Cajetan Rodrigues, and Sacul in :gh:`134584`.) | |
| 1469 | 1464 | ||
| 1465 | + The JIT optimizer now supports significantly more operations than in 3.14. | ||
| 1466 | + (Contributed by Kumar Aditya, Ken Jin, and Sacul in :gh:`131798`.) | ||
| 1467 | + | ||
| 1470 | 1468 | .. rubric:: Better machine code generation | |
| 1471 | 1469 | ||
| 1472 | 1470 | The JIT compiler's machine code generator now produces better machine code | |
| 1473 | 1471 | for x86-64 and AArch64 macOS and Linux targets. In general, users should | |
| 1474 | 1472 | experience lower memory usage for generated machine code and more efficient | |
| 1475 | - machine code versus the old JIT. | ||
| 1476 | - | ||
| 1473 | + machine code versus 3.14. | ||
| 1477 | 1474 | (Contributed by Brandt Bucher in :gh:`136528` and :gh:`136528`. | |
| 1478 | 1475 | Implementation for AArch64 contributed by Mark Shannon in :gh:`139855`. | |
| 1479 | 1476 | Additional optimizations for AArch64 contributed by Mark Shannon and | |
| 1480 | 1477 | Diego Russo in :gh:`140683` and :gh:`142305`.) | |
| 1481 | 1478 | ||
| 1479 | + .. rubric:: Maintainability | ||
| 1480 | + | ||
| 1481 | + The JIT optimizer's operations have been simplified. | ||
| 1482 | + This was made possible by a refactoring of JIT data structures. | ||
| 1483 | + (Contributed by Zhongtian Zheng in :gh:`148211` and Hai Zhu in :gh:`143421`.) | ||
| 1484 | + | ||
| 1482 | 1485 | ||
| 1483 | 1486 | Removed | |
| 1484 | 1487 | ======== | |
| Back | FazBrowse Home | New Git URL |
0 commit comments