|
1 | 1 | PEP: 744 |
2 | 2 | Title: JIT Compilation |
3 | | -Author: Brandt Bucher <brandt@python.org> |
| 3 | +Author: Brandt Bucher <brandt@python.org>, |
| 4 | + Savannah Ostrowski <savannahostrowski@gmail.com>, |
4 | 5 | Discussions-To: https://discuss.python.org/t/pep-744-jit-compilation/50756 |
5 | 6 | Status: Draft |
6 | 7 | Type: Informational |
@@ -33,7 +34,7 @@ the following resources: |
33 | 34 | JIT at the 2023 CPython Core Developer Sprint. It includes relevant |
34 | 35 | background, a light technical introduction to the "copy-and-patch" technique |
35 | 36 | used, and an open discussion of its design amongst the core developers |
36 | | - present. |
| 37 | + present. Slides for this talk can be found on `GitHub <https://github.com/brandtbucher/brandtbucher/blob/master/2023/10/10/a_jit_compiler_for_cpython.pdf>`__. |
37 | 38 |
|
38 | 39 | - The `open access paper <https://dl.acm.org/doi/10.1145/3485513>`__ originally |
39 | 40 | describing copy-and-patch. |
@@ -534,6 +535,12 @@ executable. These issues are no longer present in the current design. |
534 | 535 | Dependencies |
535 | 536 | ------------ |
536 | 537 |
|
| 538 | +At the time of writing, the JIT has a build-time dependency on LLVM. LLVM |
| 539 | +is used to compile individual micro-op instructions into blobs of machine code, |
| 540 | +which are then linked together to form the JIT's templates. These templates are |
| 541 | +used to build CPython itself. The JIT has no runtime dependency on LLVM and is |
| 542 | +therefore not at all exposed as a dependency to end users. |
| 543 | + |
537 | 544 | Building the JIT adds between 3 and 60 seconds to the build process, depending |
538 | 545 | on platform. It is only rebuilt whenever the generated files become out-of-date, |
539 | 546 | so only those who are actively developing the main interpreter loop will be |
|
0 commit comments