Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | GH-118943: Fix a race condition when generating jit_stencils.h (GH-118957) | Brandt Bucher | 2024-05-16 | 1 | -7/+12 |
| | |||||
* | Explain how to install LLVM on Fedora (GH-118983) | Miro Hrončok | 2024-05-16 | 1 | -0/+6 |
| | | | Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com> | ||||
* | GH-118836: Fix JIT build error when SHT_NOTE section is present (GH-119000) | Michał Górny | 2024-05-13 | 1 | -0/+1 |
| | |||||
* | GH-113464: Generate a more efficient JIT (GH-118512) | Brandt Bucher | 2024-05-03 | 2 | -81/+142 |
| | |||||
* | GH-118251: Skip fewer test in emulated JIT CI (GH-118536) | Savannah Ostrowski | 2024-05-03 | 1 | -0/+79 |
| | |||||
* | GH-118487: Add Black to `.pre-commit-config.yaml` for JIT files (GH-118537) | Savannah Ostrowski | 2024-05-03 | 1 | -2/+9 |
| | |||||
* | GH-117442: Check eval-breaker at start (rather than end) of tier 2 loops ↵ | Mark Shannon | 2024-05-02 | 1 | -1/+0 |
| | | | | (GH-118482) | ||||
* | GH-113464: Display a warning when building the JIT (GH-118481) | Brandt Bucher | 2024-05-01 | 6 | -26/+38 |
| | |||||
* | GH-115802: Use the GHC calling convention in JIT code (GH-118287) | Brandt Bucher | 2024-05-01 | 4 | -11/+76 |
| | |||||
* | gh-118335: Configure Tier 2 interpreter at build time (#118339) | Guido van Rossum | 2024-05-01 | 1 | -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 Ostrowski | 2024-04-29 | 5 | -34/+43 |
| | |||||
* | GH-118095: Add dynamic exit support and FOR_ITER_GEN support to tier 2 ↵ | Mark Shannon | 2024-04-26 | 1 | -0/+4 |
| | | | | (GH-118279) | ||||
* | gh-116818: Make `sys.settrace`, `sys.setprofile`, and monitoring thread-safe ↵ | Dino Viehland | 2024-04-19 | 1 | -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 Bucher | 2024-04-06 | 3 | -3/+13 |
| | |||||
* | GH-117457: Correct pystats uop "miss" counts (GH-117477) | Michael Droettboom | 2024-04-04 | 1 | -6/+4 |
| | |||||
* | gh-116968: Reimplement Tier 2 counters (#117144) | Guido van Rossum | 2024-04-04 | 1 | -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 Gross | 2024-03-29 | 1 | -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 Droettboom | 2024-03-28 | 1 | -0/+7 |
| | |||||
* | GH-116422: Tier2 hot/cold splitting (GH-116813) | Mark Shannon | 2024-03-26 | 2 | -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 Bucher | 2024-03-19 | 2 | -5/+4 |
| | |||||
* | gh-116381: Remove bad specializations, add fail stats (GH-116464) | Ken Jin | 2024-03-07 | 1 | -0/+1 |
| | | | * Remove bad specializations, add fail stats | ||||
* | GH-116134: JIT aarch64-pc-windows-msvc (GH-116130) | Brandt Bucher | 2024-03-04 | 2 | -0/+20 |
| | |||||
* | GH-115802: Don't JIT zero-length jumps (GH-116177) | Brandt Bucher | 2024-03-04 | 1 | -17/+68 |
| | |||||
* | GH-115802: JIT "small" code for Windows (GH-115964) | Brandt Bucher | 2024-02-29 | 4 | -19/+46 |
| | |||||
* | GH-115802: JIT "small" code for macOS and Linux (GH-115826) | Brandt Bucher | 2024-02-26 | 2 | -13/+65 |
| | |||||
* | GH-113464: Clean up JIT stencil generation (GH-115800) | Brandt Bucher | 2024-02-22 | 1 | -6/+5 |
| | |||||
* | GH-112354: Initial implementation of warm up on exits and trace-stitching ↵ | Mark Shannon | 2024-02-20 | 1 | -5/+25 |
| | | | | (GH-114142) | ||||
* | GH-113464: Add a JIT backend for tier 2 (GH-113465) | Brandt Bucher | 2024-01-29 | 9 | -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. |