summaryrefslogtreecommitdiffstats
path: root/Python/bytecodes.c
Commit message (Collapse)AuthorAgeFilesLines
...
* gh-116735: Use `MISSING` for `CALL` event if argument is absent (GH-116737)Tian Gao2024-03-151-1/+1
|
* GH-116422: Modify a few uops so that they can be supported by tier 2 with ↵Mark Shannon2024-03-151-19/+15
| | | | hot/cold splitting (GH-116832)
* GH-116422: Factor out eval breaker checks at end of calls into its own ↵Mark Shannon2024-03-141-26/+74
| | | | micro-op. (GH-116817)
* gh-116760: Fix pystats for trace attempts (GH-116761)Michael Droettboom2024-03-131-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 Gao2024-03-131-14/+15
| | | | (GH-116627)
* GH-116468: Use constants instead of `oparg` in stack effects when `oparg` is ↵Mark Shannon2024-03-111-17/+13
| | | | known to be a constant. (GH-116469)
* GH-113710: Fix optimization of globals using `_CHECK_FUNCTION` (GH-116460)Mark Shannon2024-03-081-2/+3
|
* gh-116381: Remove bad specializations, add fail stats (GH-116464)Ken Jin2024-03-071-28/+4
| | | * Remove bad specializations, add fail stats
* gh-116437: Use new C API PyDict_Pop() to simplify the code (GH-116438)Serhiy Storchaka2024-03-071-7/+7
|
* gh-116381: Specialize CONTAINS_OP (GH-116385)Ken Jin2024-03-061-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 Shannon2024-03-061-6/+2
| | | | (GH-116410)
* GH-115685: Split `_TO_BOOL_ALWAYS_TRUE` into micro-ops (GH-116352)Mark Shannon2024-03-051-6/+7
|
* gh-116098: Revert "gh-107674: Improve performance of `sys.settrace` ↵Tian Gao2024-03-011-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 Jin2024-02-291-0/+5
|
* GH-115802: JIT "small" code for Windows (GH-115964)Brandt Bucher2024-02-291-4/+4
|
* gh-107674: Improve performance of `sys.settrace` (GH-114986)Tian Gao2024-02-281-16/+17
|
* gh-115778: Add `tierN` annotation for instruction definitions (#115815)Kirill Podoprigora2024-02-231-83/+35
| | | | | This replaces the old `TIER_{ONE,TWO}_ONLY` macros. Note that `specialized` implies `tier1`. Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com>
* GH-115651: Convert `LOAD_MODULE_ATTR` into `LOAD_INLINE_CONST` when the ↵Mark Shannon2024-02-221-2/+2
| | | | module is itself a constant. (GH-115711)
* gh-115733: Fix crash involving exhausted list iterator (#115740)Sam Gross2024-02-201-1/+2
| | | | | * gh-115733: Fix crash involving exhausted iterator * Add blurb
* gh-112175: Add `eval_breaker` to `PyThreadState` (#115194)Brett Simmers2024-02-201-4/+3
| | | | | | | | | | | This change adds an `eval_breaker` field to `PyThreadState`. The primary motivation is for performance in free-threaded builds: with thread-local eval breakers, we can stop a specific thread (e.g., for an async exception) without interrupting other threads. The source of truth for the global instrumentation version is stored in the `instrumentation_version` field in PyInterpreterState. Threads usually read the version from their local `eval_breaker`, where it continues to be colocated with the eval breaker bits.
* gh-115687: Split up guards from COMPARE_OP (GH-115688)Ken Jin2024-02-201-9/+12
|
* GH-115457: Support splitting and replication of micro ops. (GH-115558)Mark Shannon2024-02-201-7/+9
|
* GH-112354: Initial implementation of warm up on exits and trace-stitching ↵Mark Shannon2024-02-201-33/+89
| | | | (GH-114142)
* gh-114626: add PyCFunctionFast and PyCFunctionFastWithKeywords (GH-114627)David Hewitt2024-02-151-7/+7
| | | Co-authored-by: Petr Viktorin <encukou@gmail.com>
* gh-112087: Make __sizeof__ and listiter_{len, next} to be threadsafe (gh-114843)Donghee Na2024-02-141-3/+5
|
* GH-113710: Improve `_SET_IP` and `_CHECK_VALIDITY` (GH-115248)Mark Shannon2024-02-131-3/+7
|
* GH-113710: Backedge counter improvements. (GH-115166)Mark Shannon2024-02-131-13/+16
|
* gh-114058: Foundations of the Tier2 redundancy eliminator (GH-115085)Ken Jin2024-02-131-23/+23
| | | | | | | --------- Co-authored-by: Mark Shannon <9448417+markshannon@users.noreply.github.com> Co-authored-by: Jules <57632293+JuliaPoo@users.noreply.github.com> Co-authored-by: Guido van Rossum <gvanrossum@users.noreply.github.com>
* GH-114695: Add `sys._clear_internal_caches` (GH-115152)Brandt Bucher2024-02-121-17/+6
|
* GH-113710: Add a "globals to constants" pass (GH-114592)Mark Shannon2024-02-021-0/+24
| | | Converts specializations of `LOAD_GLOBAL` into constants during tier 2 optimization.
* Update outdated comment in ``Python/bytecodes.c`` (#114522)Kirill Podoprigora2024-01-241-2/+2
|
* GH-112354: `END_FOR` instruction to only pop one value. (GH-114247)Mark Shannon2024-01-241-12/+12
| | | | * Compiler emits END_FOR; POP_TOP instead of END_FOR. To support tier 2 side exits in loops.
* GH-113710: Add a tier 2 peephole optimization pass. (GH-114487)Mark Shannon2024-01-241-0/+4
| | | | | * Convert _LOAD_CONST to inline versions * Remove PEP 523 checks
* gh-113102: Fix typo in INSTRUMENTED_RESUME (GH-114349)Guido van Rossum2024-01-221-1/+1
|
* GH-112354: `_GUARD_IS_TRUE_POP` side-exits to target the next instruction, ↵Mark Shannon2024-01-151-5/+14
| | | | not themselves. (GH-114078)
* gh-113710: Add types to the interpreter DSL (#113711)Ken Jin2024-01-121-31/+26
| | | | Co-authored-by: Jules <57632293+JuliaPoo@users.noreply.github.com> Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
* GH-113860: Get rid of `_PyUOpExecutorObject` (GH-113954)Brandt Bucher2024-01-121-4/+4
|
* GH-113853: Guarantee forward progress in executors (GH-113854)Mark Shannon2024-01-111-5/+13
|
* GH-113860: All executors are now defined in terms of micro ops. Convert ↵Mark Shannon2024-01-101-10/+12
| | | | counter executor to use uops. (GH-113864)
* GH-113689: Fix broken handling of invalid executors (GH-113694)Brandt Bucher2024-01-041-1/+2
|
* GH-113595: Don't enter invalid executor (GH-113596)Mark Shannon2024-01-031-9/+19
|
* gh-111375: Use `NULL` rather than `None` in the exception stack to indicate ↵Carey Metcalfe2023-12-211-1/+1
| | | | that an exception was handled (#113302)
* GH-111485: Generate instruction and uop metadata (GH-113287)Mark Shannon2023-12-201-32/+40
|
* GH-111485: Mark some instructions as `TIER_ONE_ONLY` (GH-113155)Brandt Bucher2023-12-151-0/+7
|
* GH-112354: Treat _EXIT_TRACE like an unconditional side exit (GH-113104)Mark Shannon2023-12-141-1/+1
|
* GH-108866: Guarantee forward progress in executors. (GH-113006)Mark Shannon2023-12-121-7/+4
|
* GH-111485: Factor out tier 2 code generation from the rest of the ↵Mark Shannon2023-12-121-0/+3
| | | | interpreter code generator (GH-112968)
* GH-111485: Separate out parsing, analysis and code-gen phases of tier 1 code ↵Mark Shannon2023-12-071-3/+2
| | | | generator (GH-112299)
* gh-112519: Make it possible to specify instruction flags for pseudo ↵Irit Katriel2023-11-301-3/+3
| | | | instructions in bytecodes.c (#112520)
* Rename ...Uop... to ...UOp... (uppercase O) for consistency (#112327)Guido van Rossum2023-11-291-1/+1
| | | | * Rename _PyUopExecute to _PyUOpExecute (uppercase O) for consistency * Also rename _PyUopName and _PyUOp_Replacements, and some output strings