summaryrefslogtreecommitdiffstats
path: root/Tools/jit
Commit message (Collapse)AuthorAgeFilesLines
* [3.13] Ignore some failing tests in emulated JIT CI (GH-120977)Miss Islington (bot)2024-06-261-1/+4
| | | | (cherry picked from commit 07daaf1ce10eb6d7a5ca9ea7c9055bf571d9e57f) Co-authored-by: Diego Russo <diego.russo@arm.com>
* [3.13] GH-120602: Support LLVM_VERSION_SUFFIX for JIT builds (GH-120768)Miss Islington (bot)2024-06-201-1/+1
| | | | | (cherry picked from commit 285f42c850da0d8ca31850088eb7b9247cbbbc71) Co-authored-by: Xarblu <xarblu@protonmail.com>
* [3.13] gh-120433: Mention ``chocolatey`` for installing llvm on Windows as ↵Miss Islington (bot)2024-06-171-0/+6
| | | | | | | | an alternative option (GH-120434) (#120651) gh-120433: Mention ``chocolatey`` for installing llvm on Windows as an alternative option (GH-120434) (cherry picked from commit 95737bbf18765a24b6585708588c9b707dc30d27) Co-authored-by: Kirill Podoprigora <kirill.bast9@mail.ru>
* [3.13] GH-118943: Fix a race condition when generating jit_stencils.h ↵Miss Islington (bot)2024-05-161-7/+12
| | | | | (GH-119101) (cherry picked from commit 4702b7b5bdc07d046576b4126cf4e4f5f7145abb)
* [3.13] Explain how to install LLVM on Fedora (GH-119100)Miss Islington (bot)2024-05-161-0/+6
| | | | | (cherry picked from commit ab73bcdf73fed5a23f2e2e37a63d6992f29479a9) Co-authored-by: Miro Hrončok <miro@hroncok.cz> Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
* [3.13] GH-118836: Fix JIT build error when SHT_NOTE section is present ↵Miss Islington (bot)2024-05-131-0/+1
| | | | | | | (GH-119020) (cherry picked from commit e04cd964eb4eee1b0ae5b2c34727abce6c0fb7f0) Co-authored-by: Michał Górny <mgorny@gentoo.org>
* GH-113464: Generate a more efficient JIT (GH-118512)Brandt Bucher2024-05-032-81/+142
|
* GH-118251: Skip fewer test in emulated JIT CI (GH-118536)Savannah Ostrowski2024-05-031-0/+79
|
* GH-118487: Add Black to `.pre-commit-config.yaml` for JIT files (GH-118537)Savannah Ostrowski2024-05-031-2/+9
|
* GH-117442: Check eval-breaker at start (rather than end) of tier 2 loops ↵Mark Shannon2024-05-021-1/+0
| | | | (GH-118482)
* GH-113464: Display a warning when building the JIT (GH-118481)Brandt Bucher2024-05-016-26/+38
|
* GH-115802: Use the GHC calling convention in JIT code (GH-118287)Brandt Bucher2024-05-014-11/+76
|
* gh-118335: Configure Tier 2 interpreter at build time (#118339)Guido van Rossum2024-05-011-3/+3
| | | | | | | | | | | | | | | | | | | | | | The code for Tier 2 is now only compiled when configured with `--enable-experimental-jit[=yes|interpreter]`. We drop support for `PYTHON_UOPS` and -`Xuops`, but you can disable the interpreter or JIT at runtime by setting `PYTHON_JIT=0`. You can also build it without enabling it by default using `--enable-experimental-jit=yes-off`; enable with `PYTHON_JIT=1`. On Windows, the `build.bat` script supports `--experimental-jit`, `--experimental-jit-off`, `--experimental-interpreter`. In the C code, `_Py_JIT` is defined as before when the JIT is enabled; the new variable `_Py_TIER2` is defined when the JIT *or* the interpreter is enabled. It is actually a bitmask: 1: JIT; 2: default-off; 4: interpreter.
* GH-118306: Update JIT to use LLVM 18 (GH-118307)Savannah Ostrowski2024-04-295-34/+43
|
* GH-118095: Add dynamic exit support and FOR_ITER_GEN support to tier 2 ↵Mark Shannon2024-04-261-0/+4
| | | | (GH-118279)
* gh-116818: Make `sys.settrace`, `sys.setprofile`, and monitoring thread-safe ↵Dino Viehland2024-04-191-0/+1
| | | | | | | (#116775) Makes sys.settrace, sys.setprofile, and monitoring generally thread-safe. Mostly uses a stop-the-world approach and synchronization around the code object's _co_instrumentation_version. There may be a little bit of extra synchronization around the monitoring data that's required to be TSAN clean.
* GH-117512: Allow 64-bit JIT operands on 32-bit platforms (GH-117527)Brandt Bucher2024-04-063-3/+13
|
* GH-117457: Correct pystats uop "miss" counts (GH-117477)Michael Droettboom2024-04-041-6/+4
|
* gh-116968: Reimplement Tier 2 counters (#117144)Guido van Rossum2024-04-041-0/+1
| | | | | | | | | | | | Introduce a unified 16-bit backoff counter type (``_Py_BackoffCounter``), shared between the Tier 1 adaptive specializer and the Tier 2 optimizer. The API used for adaptive specialization counters is changed but the behavior is (supposed to be) identical. The behavior of the Tier 2 counters is changed: - There are no longer dynamic thresholds (we never varied these). - All counters now use the same exponential backoff. - The counter for ``JUMP_BACKWARD`` starts counting down from 16. - The ``temperature`` in side exits starts counting down from 64.
* gh-117323: Make `cell` thread-safe in free-threaded builds (#117330)Sam Gross2024-03-291-0/+1
| | | Use critical sections to lock around accesses to cell contents. The critical sections are no-ops in the default (with GIL) build.
* GH-117121: Add pystats to JIT builds (GH-117346)Michael Droettboom2024-03-281-0/+7
|
* GH-116422: Tier2 hot/cold splitting (GH-116813)Mark Shannon2024-03-262-17/+20
| | | | | Splits the "cold" path, deopts and exits, from the "hot" path, reducing the size of most jitted instructions, at the cost of slower exits.
* GH-116017: Put JIT code and data on the same page (GH-116845)Brandt Bucher2024-03-192-5/+4
|
* gh-116381: Remove bad specializations, add fail stats (GH-116464)Ken Jin2024-03-071-0/+1
| | | * Remove bad specializations, add fail stats
* GH-116134: JIT aarch64-pc-windows-msvc (GH-116130)Brandt Bucher2024-03-042-0/+20
|
* GH-115802: Don't JIT zero-length jumps (GH-116177)Brandt Bucher2024-03-041-17/+68
|
* GH-115802: JIT "small" code for Windows (GH-115964)Brandt Bucher2024-02-294-19/+46
|
* GH-115802: JIT "small" code for macOS and Linux (GH-115826)Brandt Bucher2024-02-262-13/+65
|
* GH-113464: Clean up JIT stencil generation (GH-115800)Brandt Bucher2024-02-221-6/+5
|
* GH-112354: Initial implementation of warm up on exits and trace-stitching ↵Mark Shannon2024-02-201-5/+25
| | | | (GH-114142)
* GH-113464: Add a JIT backend for tier 2 (GH-113465)Brandt Bucher2024-01-299-0/+1084
Add an option (--enable-experimental-jit for configure-based builds or --experimental-jit for PCbuild-based ones) to build an *experimental* just-in-time compiler, based on copy-and-patch (https://fredrikbk.com/publications/copy-and-patch.pdf). See Tools/jit/README.md for more information on how to install the required build-time tooling.