gh-115859: Disable the tier 2 redundancy eliminator by default (GH-115860)

This commit is contained in:
Ken Jin 2024-02-24 02:43:52 +08:00 committed by GitHub
parent e4561e0501
commit 3d8fc06d4f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 3 deletions

View File

@ -4,6 +4,7 @@ import sys
import textwrap
import unittest
import gc
import os
import _testinternalcapi
@ -568,6 +569,8 @@ class TestUops(unittest.TestCase):
count = ops.count("_GUARD_IS_TRUE_POP") + ops.count("_GUARD_IS_FALSE_POP")
self.assertLessEqual(count, 2)
@unittest.skipIf(os.getenv("PYTHONUOPSOPTIMIZE", default=0) == 0, "Needs uop optimizer to run.")
class TestUopsOptimization(unittest.TestCase):
def _run_with_optimizer(self, testfunc, arg):

View File

@ -810,9 +810,12 @@ _Py_uop_analyze_and_optimize(
peephole_opt(frame, buffer, buffer_size);
err = uop_redundancy_eliminator(
(PyCodeObject *)frame->f_executable, buffer,
buffer_size, curr_stacklen, dependencies);
char *uop_optimize = Py_GETENV("PYTHONUOPSOPTIMIZE");
if (uop_optimize != NULL && *uop_optimize > '0') {
err = uop_redundancy_eliminator(
(PyCodeObject *)frame->f_executable, buffer,
buffer_size, curr_stacklen, dependencies);
}
if (err == 0) {
goto not_ready;