diff options
author | Guido van Rossum <guido@python.org> | 2024-02-28 22:38:01 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-28 22:38:01 (GMT) |
commit | 3409bc29c9f06051c28ae0791155e3aebd76ff2d (patch) | |
tree | 4b627c970a2d5a4b92fc48e320dbe24e579d4eab /Python/optimizer.c | |
parent | 75c6c05fea212330f4b0259602ffae1b2cb91be3 (diff) | |
download | cpython-3409bc29c9f06051c28ae0791155e3aebd76ff2d.zip cpython-3409bc29c9f06051c28ae0791155e3aebd76ff2d.tar.gz cpython-3409bc29c9f06051c28ae0791155e3aebd76ff2d.tar.bz2 |
gh-115859: Re-enable T2 optimizer pass by default (#116062)
This undoes the *temporary* default disabling of the T2 optimizer pass in gh-115860.
- Add a new test that reproduces Brandt's example from gh-115859; it indeed crashes before gh-116028 with PYTHONUOPSOPTIMIZE=1
- Re-enable the optimizer pass in T2, stop checking PYTHONUOPSOPTIMIZE
- Rename the env var to disable T2 entirely to PYTHON_UOPS_OPTIMIZE (must be explicitly set to 0 to disable)
- Fix skipIf conditions on tests in test_opt.py accordingly
- Export sym_is_bottom() (for debugging)
- Fix various things in the `_BINARY_OP_` specializations in the abstract interpreter:
- DECREF(temp)
- out-of-space check after sym_new_const()
- add sym_matches_type() checks, so even if we somehow reach a binary op with symbolic constants of the wrong type on the stack we won't trigger the type assert
Diffstat (limited to 'Python/optimizer.c')
-rw-r--r-- | Python/optimizer.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Python/optimizer.c b/Python/optimizer.c index c04ee17..acd6d52 100644 --- a/Python/optimizer.c +++ b/Python/optimizer.c @@ -1008,8 +1008,8 @@ uop_optimize( return err; } OPT_STAT_INC(traces_created); - char *uop_optimize = Py_GETENV("PYTHONUOPSOPTIMIZE"); - if (uop_optimize == NULL || *uop_optimize > '0') { + char *env_var = Py_GETENV("PYTHON_UOPS_OPTIMIZE"); + if (env_var == NULL || *env_var == '\0' || *env_var > '0') { err = _Py_uop_analyze_and_optimize(frame, buffer, UOP_MAX_TRACE_LENGTH, curr_stackentries, &dependencies); |