| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | [3.13] gh-133412: amend docs for the `inst` definition (GH-133708) (#133730) | Miss Islington (bot) | 2025-05-09 | 1 | -1/+1 |
| | | | | | | | | | gh-133412: amend docs for the `inst` definition (GH-133708) The `stack_effect` is incorrectly documented as being allowed to be optional. (cherry picked from commit f77dac66e1867cfdf6f7549822dd64416f6063bc) Co-authored-by: Nybblista <170842536+nybblista@users.noreply.github.com> | ||||
| * | [3.13] Replace `strict_concatenate = True` with `extra_checks = True` ↵ | Miss Islington (bot) | 2025-01-25 | 1 | -1/+1 |
| | | | | | | | | | (GH-126391) (#129286) Replace `strict_concatenate = True` with `extra_checks = True` (GH-126391) (cherry picked from commit cc4f0a27704ba1401bd66931f5234be9c6b92ba5) Co-authored-by: sobolevn <mail@sobolevn.me> | ||||
| * | [3.13] GH-122155: Fix cases generator to correctly compute 'peek' offset for ↵ | Mark Shannon | 2024-07-26 | 3 | -6/+17 |
| | | | | | error handling (GH-122158) (GH-122174) | ||||
| * | gh-118335: Configure Tier 2 interpreter at build time (#118339) | Guido van Rossum | 2024-05-01 | 1 | -0/+1 |
| | | | | | | | | | | | | | | | | | | | | | | | 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-112075: Make instance attributes stored in inline "dict" thread safe ↵ | Dino Viehland | 2024-04-22 | 1 | -0/+1 |
| | | | | | | (#114742) Make instance attributes stored in inline "dict" thread safe on free-threaded builds | ||||
| * | GH-115419: Improve list of escaping functions (GH-118054) | Mark Shannon | 2024-04-19 | 1 | -0/+10 |
| | | |||||
| * | Cases generator: Remove type_prop and passthrough (#117614) | Ken Jin | 2024-04-07 | 2 | -11/+0 |
| | | |||||
| * | GH-117457: Correct pystats uop "miss" counts (GH-117477) | Michael Droettboom | 2024-04-04 | 1 | -2/+8 |
| | | |||||
| * | GH-115776: Embed the values array into the object, for "normal" Python ↵ | Mark Shannon | 2024-04-02 | 1 | -4/+3 |
| | | | | | objects. (GH-116115) | ||||
| * | gh-117323: Make `cell` thread-safe in free-threaded builds (#117330) | Sam Gross | 2024-03-29 | 1 | -2/+3 |
| | | | | 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 | 5 | -37/+102 |
| | | | | | | 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-115419: Change default sym to not_null (GH-116562) | Ken Jin | 2024-03-13 | 1 | -2/+2 |
| | | |||||
| * | GH-116596: Better determination of escaping uops. (GH-116597) | Mark Shannon | 2024-03-11 | 1 | -0/+16 |
| | | |||||
| * | gh-116000: Make optimizer_generator.py work without any arguments (#116470) | Kirill Podoprigora | 2024-03-07 | 1 | -5/+8 |
| | | |||||
| * | gh-115999: Disable the specializing adaptive interpreter in free-threaded ↵ | Brett Simmers | 2024-03-01 | 1 | -0/+5 |
| | | | | | | builds (#116013) For now, disable all specialization when the GIL might be disabled. | ||||
| * | gh-116088: Insert bottom checks after all sym_set_...() calls (#116089) | Guido van Rossum | 2024-02-29 | 1 | -4/+0 |
| | | | | | | | | | | This changes the `sym_set_...()` functions to return a `bool` which is `false` when the symbol is `bottom` after the operation. All calls to such functions now check this result and go to `hit_bottom`, a special error label that prints a different message and then reports that it wasn't able to optimize the trace. No executor will be produced in this case. | ||||
| * | gh-115816: Generate calls to sym_new_const() etc. without _Py_uop prefix ↵ | Guido van Rossum | 2024-02-29 | 1 | -4/+4 |
| | | | | | | | | | | (#116077) This was left behind by GH-115987. Basically a lot of diffs like this: ``` - res = _Py_uop_sym_new_unknown(ctx); + res = sym_new_unknown(ctx); ``` | ||||
| * | GH-115816: Assorted naming and formatting changes to improve ↵ | Mark Shannon | 2024-02-27 | 1 | -3/+3 |
| | | | | | | | | maintainability. (GH-115987) * Rename _Py_UOpsAbstractInterpContext to _Py_UOpsContext and _Py_UOpsSymType to _Py_UopsSymbol. * #define shortened form of _Py_uop_... names for improved readability. | ||||
| * | GH-115816: Make tier2 optimizer symbols testable, and add a few tests. ↵ | Mark Shannon | 2024-02-27 | 1 | -3/+3 |
| | | | | | (GH-115953) | ||||
| * | Rename tier 2 redundancy eliminator to optimizer (#115888) | Guido van Rossum | 2024-02-26 | 2 | -8/+8 |
| | | | | | The original name is just too much of a mouthful. | ||||
| * | gh-115778: Add `tierN` annotation for instruction definitions (#115815) | Kirill Podoprigora | 2024-02-23 | 8 | -10/+20 |
| | | | | | | This replaces the old `TIER_{ONE,TWO}_ONLY` macros. Note that `specialized` implies `tier1`. Co-authored-by: Alex Waygood <Alex.Waygood@Gmail.com> | ||||
| * | GH-115457: Support splitting and replication of micro ops. (GH-115558) | Mark Shannon | 2024-02-20 | 10 | -36/+174 |
| | | |||||
| * | GH-112354: Initial implementation of warm up on exits and trace-stitching ↵ | Mark Shannon | 2024-02-20 | 4 | -5/+37 |
| | | | | | (GH-114142) | ||||
| * | gh-114058: Foundations of the Tier2 redundancy eliminator (GH-115085) | Ken Jin | 2024-02-13 | 6 | -52/+248 |
| | | | | | | | | --------- 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> | ||||
| * | ``Tools/cases_generator``: Fix typos and incorrect comments. (#114892) | Kirill Podoprigora | 2024-02-03 | 4 | -6/+6 |
| | | |||||
| * | Update outdated info in ``Tools/cases_generator/README.md`` (#114844) | Kirill Podoprigora | 2024-02-01 | 1 | -7/+21 |
| | | |||||
| * | GH-112354: `_GUARD_IS_TRUE_POP` side-exits to target the next instruction, ↵ | Mark Shannon | 2024-01-15 | 4 | -11/+12 |
| | | | | | not themselves. (GH-114078) | ||||
| * | gh-113710: Add types to the interpreter DSL (#113711) | Ken Jin | 2024-01-12 | 7 | -30/+131 |
| | | | | | 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-111485: Delete the old generator code. (GH-113321) | Mark Shannon | 2023-12-21 | 9 | -2625/+102 |
| | | |||||
| * | GH-111485: Fix DEFAULT_OUTPUT in opcode_metadata_generator.py (#113324) | Guido van Rossum | 2023-12-20 | 1 | -1/+1 |
| | | |||||
| * | GH-111485: Generate `TARGET` table for computed goto dispatch. (GH-113319) | Mark Shannon | 2023-12-20 | 2 | -1/+54 |
| | | |||||
| * | GH-111485: Generate instruction and uop metadata (GH-113287) | Mark Shannon | 2023-12-20 | 12 | -174/+849 |
| | | |||||
| * | GH-111485: Break up instructions with unused cache entries into component ↵ | Mark Shannon | 2023-12-18 | 3 | -8/+27 |
| | | | | | micro-ops (GH-113169) | ||||
| * | GH-111485: Test the new cases generator (GH-113252) | Mark Shannon | 2023-12-18 | 5 | -10/+24 |
| | | |||||
| * | GH-111485: Sort metadata tables for easier checking of future diffs (GH-113101) | Mark Shannon | 2023-12-14 | 1 | -6/+8 |
| | | |||||
| * | Fix whitespace in generated code | Mark Shannon | 2023-12-13 | 1 | -3/+4 |
| | | |||||
| * | GH-111485: Factor out tier 2 code generation from the rest of the ↵ | Mark Shannon | 2023-12-12 | 8 | -240/+494 |
| | | | | | interpreter code generator (GH-112968) | ||||
| * | GH-111485: Factor out generation of uop IDs from cases generator. (GH-112877) | Mark Shannon | 2023-12-11 | 4 | -2/+95 |
| | | |||||
| * | GH-111485: Factor out opcode ID generator from the main cases generator. ↵ | Mark Shannon | 2023-12-08 | 5 | -67/+196 |
| | | | | | (GH-112831) | ||||
| * | GH-111485: Separate out parsing, analysis and code-gen phases of tier 1 code ↵ | Mark Shannon | 2023-12-07 | 9 | -6/+1129 |
| | | | | | generator (GH-112299) | ||||
| * | gh-112519: Make it possible to specify instruction flags for pseudo ↵ | Irit Katriel | 2023-11-30 | 2 | -4/+30 |
| | | | | | instructions in bytecodes.c (#112520) | ||||
| * | GH-111485: Sort cases in the case generator output (GH-112315) | Mark Shannon | 2023-11-22 | 1 | -1/+5 |
| | | |||||
| * | gh-112287: Speed up Tier 2 (uop) interpreter a little (#112286) | Guido van Rossum | 2023-11-20 | 2 | -1/+3 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This makes the Tier 2 interpreter a little faster. I calculated by about 3%, though I hesitate to claim an exact number. This starts by doubling the trace size limit (to 512), making it more likely that loops fit in a trace. The rest of the approach is to only load `oparg` and `operand` in cases that use them. The code generator know when these are used. For `oparg`, it will conditionally emit ``` oparg = CURRENT_OPARG(); ``` at the top of the case block. (The `oparg` variable may be referenced multiple times by the instructions code block, so it must be in a variable.) For `operand`, it will use `CURRENT_OPERAND()` directly instead of referencing the `operand` variable, which no longer exists. (There is only one place where this will be used.) | ||||
| * | gh-110319: Assert type_version != 0 before using it (#112226) | Guido van Rossum | 2023-11-18 | 1 | -2/+2 |
| | | | | | | | - Ensure that `assert(type_version != 0);` always comes *before* using `type_version` Also: - In cases_generator, rename `-v` to from `--verbose` to `--viable` | ||||
| * | A few more cases_generator cleanups (#112220) | Guido van Rossum | 2023-11-17 | 2 | -2/+2 |
| | | |||||
| * | gh-106529: Cleanups split off gh-112134 (#112214) | Guido van Rossum | 2023-11-17 | 2 | -6/+5 |
| | | | | | | | | - Double max trace size to 256 - Add a dependency on executor_cases.c.h for ceval.o - Mark `_SPECIALIZE_UNPACK_SEQUENCE` as `TIER_ONE_ONLY` - Add debug output back showing the optimized trace - Bunch of cleanups to Tools/cases_generator/ | ||||
| * | GH-111848: Set the IP when de-optimizing (GH-112065) | Mark Shannon | 2023-11-15 | 1 | -6/+29 |
| | | | | | | | | | | | | | * Replace jumps with deopts in tier 2 * Fewer special cases of uop names * Add target field to uop IR * Remove more redundant SET_IP and _CHECK_VALIDITY micro-ops * Extend whitelist of non-escaping API functions. | ||||
| * | GH-111520: Add back the operand local (GH-111813) | Brandt Bucher | 2023-11-14 | 1 | -1/+1 |
| | | |||||
| * | GH-109369: Exit tier 2 if executor is invalid (GH-111657) | Mark Shannon | 2023-11-09 | 2 | -1/+55 |
| | | |||||
| * | GH-111848: Tidy up tier 2 handling of FOR_ITER specialization by using ↵ | Mark Shannon | 2023-11-08 | 2 | -2/+2 |
| | | | | | DEOPT_IF instead of jumps. (GH-111849) | ||||
