Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | gh-119689: generate stack effect metadata for pseudo instructions (#119691) | Irit Katriel | 2024-05-29 | 1 | -8/+16 |
| | |||||
* | GH-119258: Handle STORE_ATTR_WITH_HINT in tier two (GH-119481) | Brandt Bucher | 2024-05-28 | 1 | -5/+7 |
| | |||||
* | GH-119476: Split _CHECK_FUNCTION_VERSION out of _CHECK_FUNCTION_EXACT_ARGS ↵ | Brandt Bucher | 2024-05-28 | 1 | -3/+4 |
| | | | | (GH-119510) | ||||
* | gh-119676: remove several pseudo instructions which are use only in codegen ↵ | Irit Katriel | 2024-05-28 | 1 | -16/+0 |
| | | | | (#119677) | ||||
* | gh-119180: Add LOAD_COMMON_CONSTANT opcode (#119321) | Jelle Zijlstra | 2024-05-22 | 1 | -2/+12 |
| | | | | | | | | | | The PEP 649 implementation will require a way to load NotImplementedError from the bytecode. @markshannon suggested implementing this by converting LOAD_ASSERTION_ERROR into a more general mechanism for loading constants. This PR adds this new opcode. I will work on the rest of the implementation of the PEP separately. Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com> | ||||
* | gh-118692: Avoid creating unnecessary StopIteration instances for monitoring ↵ | Irit Katriel | 2024-05-21 | 1 | -6/+2 |
| | | | | (#119216) | ||||
* | gh-118414: Fix assertion in YIELD_VALUE when tracing lines or instrs (#118683) | Tian Gao | 2024-05-07 | 1 | -1/+3 |
| | |||||
* | GH-115709: Invalidate executors when a local variable is changed via ↵ | Mark Shannon | 2024-05-06 | 1 | -0/+3 |
| | | | | | frame.f_locals (#118639) Also fix unrelated assert in debug Tier2/JIT builds. | ||||
* | GH-118095: Use broader specializations of CALL in tier 1, for better tier 2 ↵ | Mark Shannon | 2024-05-04 | 1 | -37/+104 |
| | | | | | | | | | | support of calls. (GH-118322) * Add CALL_PY_GENERAL, CALL_BOUND_METHOD_GENERAL and call CALL_NON_PY_GENERAL specializations. * Remove CALL_PY_WITH_DEFAULTS specialization * Use CALL_NON_PY_GENERAL in more cases when otherwise failing to specialize | ||||
* | GH-113464: Remove the extra jump via `_SIDE_EXIT` in `_EXIT_TRACE` (GH-118545) | Mark Shannon | 2024-05-04 | 1 | -5/+1 |
| | |||||
* | gh-107674: Improve performance of `sys.settrace` (GH-117133) | Tian Gao | 2024-05-03 | 1 | -16/+17 |
| | | | | | | * Check tracing in RESUME_CHECK * Only change to RESUME_CHECK if not tracing | ||||
* | GH-118095: Unify the behavior of tier 2 FOR_ITER branch micro-ops (GH-118420) | Mark Shannon | 2024-05-02 | 1 | -3/+1 |
| | | | | | | * Target _FOR_ITER_TIER_TWO at POP_TOP following the matching END_FOR * Modify _GUARD_NOT_EXHAUSTED_RANGE, _GUARD_NOT_EXHAUSTED_LIST and _GUARD_NOT_EXHAUSTED_TUPLE so that they also target the POP_TOP following the matching END_FOR | ||||
* | GH-117442: Check eval-breaker at start (rather than end) of tier 2 loops ↵ | Mark Shannon | 2024-05-02 | 1 | -25/+13 |
| | | | | (GH-118482) | ||||
* | GH-118095: Make invalidating and clearing executors memory safe (GH-118459) | Mark Shannon | 2024-05-01 | 1 | -3/+9 |
| | |||||
* | gh-118335: Configure Tier 2 interpreter at build time (#118339) | Guido van Rossum | 2024-05-01 | 1 | -0/+6 |
| | | | | | | | | | | | | | | | | | | | | | | 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-117657: Don't specialize RESUME_CHECK when specialization is disabled ↵ | Ken Jin | 2024-04-30 | 1 | -0/+2 |
| | | | | (GH-118349) | ||||
* | gh-117657: Fix small issues with instrumentation and TSAN (#118064) | Dino Viehland | 2024-04-30 | 1 | -2/+2 |
| | | | Small TSAN fixups for instrumentation | ||||
* | GH-118095: Add tier 2 support for YIELD_VALUE (GH-118380) | Mark Shannon | 2024-04-30 | 1 | -5/+11 |
| | |||||
* | GH-118095: Allow a variant of RESUME_CHECK in tier 2 (GH-118286) | Mark Shannon | 2024-04-29 | 1 | -0/+23 |
| | |||||
* | GH-118095: Add dynamic exit support and FOR_ITER_GEN support to tier 2 ↵ | Mark Shannon | 2024-04-26 | 1 | -12/+48 |
| | | | | (GH-118279) | ||||
* | GH-118095: Handle `RETURN_GENERATOR` in tier 2 (GH-118180) | Mark Shannon | 2024-04-25 | 1 | -17/+7 |
| | |||||
* | GH-115419: Move setting the instruction pointer to error exit stubs (GH-118088) | Mark Shannon | 2024-04-24 | 1 | -1/+2 |
| | |||||
* | GH-118095: Convert DEOPT_IFs on likely side exits to EXIT_IFs (GH-118106) | Mark Shannon | 2024-04-24 | 1 | -11/+11 |
| | | | Covert DEOPT_IFs on likely side exits to EXIT_IFs | ||||
* | GH-115480: Reduce guard strength for binary ops when type of one operand is ↵ | Mark Shannon | 2024-04-22 | 1 | -0/+16 |
| | | | | known already (GH-118050) | ||||
* | gh-112075: Make instance attributes stored in inline "dict" thread safe ↵ | Dino Viehland | 2024-04-22 | 1 | -8/+7 |
| | | | | | (#114742) Make instance attributes stored in inline "dict" thread safe on free-threaded builds | ||||
* | gh-116818: Make `sys.settrace`, `sys.setprofile`, and monitoring thread-safe ↵ | Dino Viehland | 2024-04-19 | 1 | -4/+13 |
| | | | | | | | (#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-116202: Incorporate invalidation check into _START_EXECUTOR. (GH-118044) | Mark Shannon | 2024-04-19 | 1 | -0/+1 |
| | |||||
* | gh-112075: Make _PyDict_LoadGlobal thread safe (#117529) | Dino Viehland | 2024-04-04 | 1 | -1/+0 |
| | | | Make _PyDict_LoadGlobal threadsafe | ||||
* | gh-116968: Reimplement Tier 2 counters (#117144) | Guido van Rossum | 2024-04-04 | 1 | -56/+45 |
| | | | | | | | | | | | | 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-116168: Remove extra `_CHECK_STACK_SPACE` uops (#117242) | Peter Lazorchak | 2024-04-03 | 1 | -0/+6 |
| | | | This merges all `_CHECK_STACK_SPACE` uops in a trace into a single `_CHECK_STACK_SPACE_OPERAND` uop that checks whether there is enough stack space for all calls included in the entire trace. | ||||
* | GH-115776: Embed the values array into the object, for "normal" Python ↵ | Mark Shannon | 2024-04-02 | 1 | -28/+24 |
| | | | | objects. (GH-116115) | ||||
* | gh-117323: Make `cell` thread-safe in free-threaded builds (#117330) | Sam Gross | 2024-03-29 | 1 | -12/+8 |
| | | | Use critical sections to lock around accesses to cell contents. The critical sections are no-ops in the default (with GIL) build. | ||||
* | GH-116422: Tier2 hot/cold splitting (GH-116813) | Mark Shannon | 2024-03-26 | 1 | -59/+80 |
| | | | | | 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-115802: Reduce the size of _INIT_CALL_PY_EXACT_ARGS. (GH-116856) | Mark Shannon | 2024-03-15 | 1 | -8/+6 |
| | |||||
* | gh-116735: Use `MISSING` for `CALL` event if argument is absent (GH-116737) | Tian Gao | 2024-03-15 | 1 | -1/+1 |
| | |||||
* | GH-116422: Modify a few uops so that they can be supported by tier 2 with ↵ | Mark Shannon | 2024-03-15 | 1 | -19/+15 |
| | | | | hot/cold splitting (GH-116832) | ||||
* | GH-116422: Factor out eval breaker checks at end of calls into its own ↵ | Mark Shannon | 2024-03-14 | 1 | -26/+74 |
| | | | | micro-op. (GH-116817) | ||||
* | gh-116760: Fix pystats for trace attempts (GH-116761) | Michael Droettboom | 2024-03-13 | 1 | -1/+0 |
| | | | | | | | | There are now at least two bytecodes that may attempt to optimize, JUMP_BACK, and more recently, COLD_EXIT. Only the JUMP_BACK was counting the attempt in the stats. This moves that counter to uop_optimize itself so it should always happen no matter where it is called from. | ||||
* | gh-116626: Emit `CALL` events for all `INSTRUMENTED_CALL_FUNCTION_EX` ↵ | Tian Gao | 2024-03-13 | 1 | -14/+15 |
| | | | | (GH-116627) | ||||
* | GH-116468: Use constants instead of `oparg` in stack effects when `oparg` is ↵ | Mark Shannon | 2024-03-11 | 1 | -17/+13 |
| | | | | known to be a constant. (GH-116469) | ||||
* | GH-113710: Fix optimization of globals using `_CHECK_FUNCTION` (GH-116460) | Mark Shannon | 2024-03-08 | 1 | -2/+3 |
| | |||||
* | gh-116381: Remove bad specializations, add fail stats (GH-116464) | Ken Jin | 2024-03-07 | 1 | -28/+4 |
| | | | * Remove bad specializations, add fail stats | ||||
* | gh-116437: Use new C API PyDict_Pop() to simplify the code (GH-116438) | Serhiy Storchaka | 2024-03-07 | 1 | -7/+7 |
| | |||||
* | gh-116381: Specialize CONTAINS_OP (GH-116385) | Ken Jin | 2024-03-06 | 1 | -1/+63 |
| | | | | | | | | | | | * Specialize CONTAINS_OP * 📜🤖 Added by blurb_it. * Add PyAPI_FUNC for JIT --------- Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com> | ||||
* | GH-113710: Tier 2 optimizer: check the function instead of checking globals. ↵ | Mark Shannon | 2024-03-06 | 1 | -6/+2 |
| | | | | (GH-116410) | ||||
* | GH-115685: Split `_TO_BOOL_ALWAYS_TRUE` into micro-ops (GH-116352) | Mark Shannon | 2024-03-05 | 1 | -6/+7 |
| | |||||
* | gh-116098: Revert "gh-107674: Improve performance of `sys.settrace` ↵ | Tian Gao | 2024-03-01 | 1 | -17/+16 |
| | | | | | | | (GH-114986)" (GH-116178) Revert "gh-107674: Improve performance of `sys.settrace` (GH-114986)" This reverts commit 0a61e237009bf6b833e13ac635299ee063377699. | ||||
* | gh-115685: Type/values propagate for TO_BOOL in tier 2 (GH-115686) | Ken Jin | 2024-02-29 | 1 | -0/+5 |
| | |||||
* | GH-115802: JIT "small" code for Windows (GH-115964) | Brandt Bucher | 2024-02-29 | 1 | -4/+4 |
| | |||||
* | gh-107674: Improve performance of `sys.settrace` (GH-114986) | Tian Gao | 2024-02-28 | 1 | -16/+17 |
| |