https://github.com/python/cpython/commit/c0fdfba7ff981c55ac13325e4dddaf382601b246
commit: c0fdfba7ff981c55ac13325e4dddaf382601b246
branch: main
author: Guido van Rossum <[email protected]>
committer: gvanrossum <[email protected]>
date: 2024-02-26T08:42:53-08:00
summary:
Rename tier 2 redundancy eliminator to optimizer (#115888)
The original name is just too much of a mouthful.
files:
A Python/optimizer_bytecodes.c
A Python/optimizer_cases.c.h
A Tools/cases_generator/optimizer_generator.py
D Python/tier2_redundancy_eliminator_bytecodes.c
D Python/tier2_redundancy_eliminator_cases.c.h
D Tools/cases_generator/tier2_abstract_generator.py
M .gitattributes
M .github/CODEOWNERS
M .github/workflows/jit.yml
M Lib/test/test_generated_cases.py
M Makefile.pre.in
M PCbuild/regen.targets
M Python/optimizer_analysis.c
M Tools/c-analyzer/cpython/_parser.py
M Tools/cases_generator/README.md
diff --git a/.gitattributes b/.gitattributes
index 159cd83ff7407d..4f82cea7480cfe 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -95,7 +95,7 @@ Programs/test_frozenmain.h generated
Python/Python-ast.c generated
Python/executor_cases.c.h generated
Python/generated_cases.c.h generated
-Python/tier2_redundancy_eliminator_cases.c.h generated
+Python/optimizer_cases.c.h generated
Python/opcode_targets.h generated
Python/stdlib_module_names.h generated
Tools/peg_generator/pegen/grammar_parser.py generated
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index 7e20294e90e50d..1d0bce111320ff 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -38,7 +38,7 @@ Python/ast_opt.c @isidentical
Python/bytecodes.c @markshannon @gvanrossum
Python/optimizer*.c @markshannon @gvanrossum
Python/optimizer_analysis.c @Fidget-Spinner
-Python/tier2_redundancy_eliminator_bytecodes.c @Fidget-Spinner
+Python/optimizer_bytecodes.c @Fidget-Spinner
Lib/test/test_patma.py @brandtbucher
Lib/test/test_type_*.py @JelleZijlstra
Lib/test/test_capi/test_misc.py @markshannon @gvanrossum
diff --git a/.github/workflows/jit.yml b/.github/workflows/jit.yml
index 69c7b45376a411..21d4603b8679ea 100644
--- a/.github/workflows/jit.yml
+++ b/.github/workflows/jit.yml
@@ -5,13 +5,13 @@ on:
- '**jit**'
- 'Python/bytecodes.c'
- 'Python/optimizer*.c'
- - 'Python/tier2_redundancy_eliminator_bytecodes.c'
+ - 'Python/optimizer_bytecodes.c'
push:
paths:
- '**jit**'
- 'Python/bytecodes.c'
- 'Python/optimizer*.c'
- - 'Python/tier2_redundancy_eliminator_bytecodes.c'
+ - 'Python/optimizer_bytecodes.c'
workflow_dispatch:
concurrency:
diff --git a/Lib/test/test_generated_cases.py b/Lib/test/test_generated_cases.py
index 0d2ccd558d436d..6a5586822c2491 100644
--- a/Lib/test/test_generated_cases.py
+++ b/Lib/test/test_generated_cases.py
@@ -33,7 +33,7 @@ def skip_if_different_mount_drives():
import parser
from stack import Stack
import tier1_generator
- import tier2_abstract_generator
+ import optimizer_generator
def handle_stderr():
@@ -841,7 +841,7 @@ def run_cases_test(self, input: str, input2: str, expected:
str):
temp_input.flush()
with handle_stderr():
- tier2_abstract_generator.generate_tier2_abstract_from_files(
+ optimizer_generator.generate_tier2_abstract_from_files(
[self.temp_input_filename, self.temp_input2_filename],
self.temp_output_filename
)
diff --git a/Makefile.pre.in b/Makefile.pre.in
index 8893da816e9336..e4c64aea80d22c 100644
--- a/Makefile.pre.in
+++ b/Makefile.pre.in
@@ -1889,9 +1889,9 @@ regen-cases:
-o $(srcdir)/Python/generated_cases.c.h.new
$(srcdir)/Python/bytecodes.c
$(PYTHON_FOR_REGEN) $(srcdir)/Tools/cases_generator/tier2_generator.py \
-o $(srcdir)/Python/executor_cases.c.h.new
$(srcdir)/Python/bytecodes.c
- $(PYTHON_FOR_REGEN)
$(srcdir)/Tools/cases_generator/tier2_abstract_generator.py \
- -o $(srcdir)/Python/tier2_redundancy_eliminator_cases.c.h.new \
- $(srcdir)/Python/tier2_redundancy_eliminator_bytecodes.c \
+ $(PYTHON_FOR_REGEN)
$(srcdir)/Tools/cases_generator/optimizer_generator.py \
+ -o $(srcdir)/Python/optimizer_cases.c.h.new \
+ $(srcdir)/Python/optimizer_bytecodes.c \
$(srcdir)/Python/bytecodes.c
$(PYTHON_FOR_REGEN)
$(srcdir)/Tools/cases_generator/opcode_metadata_generator.py \
-o $(srcdir)/Include/internal/pycore_opcode_metadata.h.new
$(srcdir)/Python/bytecodes.c
@@ -1904,7 +1904,7 @@ regen-cases:
$(UPDATE_FILE) $(srcdir)/Include/internal/pycore_opcode_metadata.h
$(srcdir)/Include/internal/pycore_opcode_metadata.h.new
$(UPDATE_FILE) $(srcdir)/Include/internal/pycore_uop_metadata.h
$(srcdir)/Include/internal/pycore_uop_metadata.h.new
$(UPDATE_FILE) $(srcdir)/Python/executor_cases.c.h
$(srcdir)/Python/executor_cases.c.h.new
- $(UPDATE_FILE) $(srcdir)/Python/tier2_redundancy_eliminator_cases.c.h
$(srcdir)/Python/tier2_redundancy_eliminator_cases.c.h.new
+ $(UPDATE_FILE) $(srcdir)/Python/optimizer_cases.c.h
$(srcdir)/Python/optimizer_cases.c.h.new
$(UPDATE_FILE) $(srcdir)/Lib/_opcode_metadata.py
$(srcdir)/Lib/_opcode_metadata.py.new
Python/compile.o: $(srcdir)/Include/internal/pycore_opcode_metadata.h
@@ -1927,7 +1927,7 @@ Python/optimizer.o: \
Python/optimizer_analysis.o: \
$(srcdir)/Include/internal/pycore_opcode_metadata.h \
$(srcdir)/Include/internal/pycore_optimizer.h \
- $(srcdir)/Python/tier2_redundancy_eliminator_cases.c.h
+ $(srcdir)/Python/optimizer_cases.c.h
Python/frozen.o: $(FROZEN_FILES_OUT)
diff --git a/PCbuild/regen.targets b/PCbuild/regen.targets
index 8f31803dbb752a..f36387231a0d3a 100644
--- a/PCbuild/regen.targets
+++ b/PCbuild/regen.targets
@@ -31,8 +31,8 @@
<!-- Taken from _Target._compute_digest in Tools\jit\_targets.py: -->
<_JITSources
Include="$(PySourcePath)Python\executor_cases.c.h;$(GeneratedPyConfigDir)pyconfig.h;$(PySourcePath)Tools\jit\**"/>
<_JITOutputs Include="$(GeneratedPyConfigDir)jit_stencils.h"/>
- <_CasesSources
Include="$(PySourcePath)Python\bytecodes.c;$(PySourcePath)Python\tier2_redundancy_eliminator_bytecodes.c;"/>
- <_CasesOutputs
Include="$(PySourcePath)Python\generated_cases.c.h;$(PySourcePath)Include\opcode_ids.h;$(PySourcePath)Include\internal\pycore_uop_ids.h;$(PySourcePath)Python\opcode_targets.h;$(PySourcePath)Include\internal\pycore_opcode_metadata.h;$(PySourcePath)Include\internal\pycore_uop_metadata.h;$(PySourcePath)Python\tier2_redundancy_eliminator_cases.c.h;$(PySourcePath)Lib\_opcode_metadata.py"/>
+ <_CasesSources
Include="$(PySourcePath)Python\bytecodes.c;$(PySourcePath)Python\optimizer_bytecodes.c;"/>
+ <_CasesOutputs
Include="$(PySourcePath)Python\generated_cases.c.h;$(PySourcePath)Include\opcode_ids.h;$(PySourcePath)Include\internal\pycore_uop_ids.h;$(PySourcePath)Python\opcode_targets.h;$(PySourcePath)Include\internal\pycore_opcode_metadata.h;$(PySourcePath)Include\internal\pycore_uop_metadata.h;$(PySourcePath)Python\optimizer_cases.c.h;$(PySourcePath)Lib\_opcode_metadata.py"/>
</ItemGroup>
<Target Name="_TouchRegenSources" Condition="$(ForceRegen) == 'true'">
@@ -98,7 +98,7 @@
WorkingDirectory="$(PySourcePath)" />
<Exec Command="$(PythonForBuild)
$(PySourcePath)Tools\cases_generator\tier2_generator.py
$(PySourcePath)Python\bytecodes.c"
WorkingDirectory="$(PySourcePath)" />
- <Exec Command="$(PythonForBuild)
$(PySourcePath)Tools\cases_generator\tier2_abstract_generator.py
$(PySourcePath)Python\tier2_redundancy_eliminator_bytecodes.c
$(PySourcePath)Python\bytecodes.c"
+ <Exec Command="$(PythonForBuild)
$(PySourcePath)Tools\cases_generator\optimizer_generator.py
$(PySourcePath)Python\optimizer_bytecodes.c $(PySourcePath)Python\bytecodes.c"
WorkingDirectory="$(PySourcePath)" />
<Exec Command="$(PythonForBuild)
$(PySourcePath)Tools\cases_generator\opcode_metadata_generator.py
$(PySourcePath)Python\bytecodes.c"
WorkingDirectory="$(PySourcePath)" />
diff --git a/Python/optimizer_analysis.c b/Python/optimizer_analysis.c
index 47bfc8cf1061d9..1a9e82903ffbc0 100644
--- a/Python/optimizer_analysis.c
+++ b/Python/optimizer_analysis.c
@@ -1,5 +1,5 @@
/*
- * This file contains the support code for CPython's uops redundancy
eliminator.
+ * This file contains the support code for CPython's uops optimizer.
* It also performs some simple optimizations.
* It performs a traditional data-flow analysis[1] over the trace of uops.
* Using the information gained, it chooses to emit, or skip certain
instructions
@@ -606,7 +606,7 @@ remove_globals(_PyInterpreterFrame *frame,
_PyUOpInstruction *buffer,
/* 1 for success, 0 for not ready, cannot error at the moment. */
static int
-uop_redundancy_eliminator(
+optimize_uops(
PyCodeObject *co,
_PyUOpInstruction *trace,
int trace_len,
@@ -638,7 +638,7 @@ uop_redundancy_eliminator(
_PyUOpName(opcode),
oparg);
switch (opcode) {
-#include "tier2_redundancy_eliminator_cases.c.h"
+#include "optimizer_cases.c.h"
default:
DPRINTF(1, "Unknown opcode in abstract interpreter\n");
@@ -812,7 +812,7 @@ _Py_uop_analyze_and_optimize(
char *uop_optimize = Py_GETENV("PYTHONUOPSOPTIMIZE");
if (uop_optimize != NULL && *uop_optimize > '0') {
- err = uop_redundancy_eliminator(
+ err = optimize_uops(
(PyCodeObject *)frame->f_executable, buffer,
buffer_size, curr_stacklen, dependencies);
}
diff --git a/Python/tier2_redundancy_eliminator_bytecodes.c
b/Python/optimizer_bytecodes.c
similarity index 100%
rename from Python/tier2_redundancy_eliminator_bytecodes.c
rename to Python/optimizer_bytecodes.c
diff --git a/Python/tier2_redundancy_eliminator_cases.c.h
b/Python/optimizer_cases.c.h
similarity index 99%
rename from Python/tier2_redundancy_eliminator_cases.c.h
rename to Python/optimizer_cases.c.h
index ca341e4dde5d93..e8146dccbdfcd1 100644
--- a/Python/tier2_redundancy_eliminator_cases.c.h
+++ b/Python/optimizer_cases.c.h
@@ -1,6 +1,6 @@
-// This file is generated by Tools/cases_generator/tier2_abstract_generator.py
+// This file is generated by Tools/cases_generator/optimizer_generator.py
// from:
-// Python/tier2_redundancy_eliminator_bytecodes.c
+// Python/optimizer_bytecodes.c
// Do not edit!
case _NOP: {
diff --git a/Tools/c-analyzer/cpython/_parser.py
b/Tools/c-analyzer/cpython/_parser.py
index 8482bf849aaacd..12010f0e9c0549 100644
--- a/Tools/c-analyzer/cpython/_parser.py
+++ b/Tools/c-analyzer/cpython/_parser.py
@@ -83,11 +83,11 @@ def clean_lines(text):
Python/frozen_modules/*.h
Python/generated_cases.c.h
Python/executor_cases.c.h
-Python/tier2_redundancy_eliminator_cases.c.h
+Python/optimizer_cases.c.h
# not actually source
Python/bytecodes.c
-Python/tier2_redundancy_eliminator_bytecodes.c
+Python/optimizer_bytecodes.c
# mimalloc
Objects/mimalloc/*.c
diff --git a/Tools/cases_generator/README.md b/Tools/cases_generator/README.md
index d35a868b42ea9e..fb512c4646b851 100644
--- a/Tools/cases_generator/README.md
+++ b/Tools/cases_generator/README.md
@@ -13,9 +13,9 @@ What's currently here:
- `parser.py` helper for interactions with `parsing.py`
- `tierN_generator.py`: a couple of driver scripts to read
`Python/bytecodes.c` and
write `Python/generated_cases.c.h` (and several other files)
-- `tier2_abstract_generator.py`: reads `Python/bytecodes.c` and
- `Python/tier2_redundancy_eliminator_bytecodes.c` and writes
- `Python/tier2_redundancy_eliminator_cases.c.h`
+- `optimizer_generator.py`: reads `Python/bytecodes.c` and
+ `Python/optimizer_bytecodes.c` and writes
+ `Python/optimizer_cases.c.h`
- `stack.py`: code to handle generalized stack effects
- `cwriter.py`: code which understands tokens and how to format C code;
main class: `CWriter`
diff --git a/Tools/cases_generator/tier2_abstract_generator.py
b/Tools/cases_generator/optimizer_generator.py
similarity index 94%
rename from Tools/cases_generator/tier2_abstract_generator.py
rename to Tools/cases_generator/optimizer_generator.py
index 58c3110dc3facb..aa3f4ecb11d58b 100644
--- a/Tools/cases_generator/tier2_abstract_generator.py
+++ b/Tools/cases_generator/optimizer_generator.py
@@ -1,6 +1,6 @@
-"""Generate the cases for the tier 2 redundancy eliminator/abstract
interpreter.
-Reads the instruction definitions from bytecodes.c. and
tier2_redundancy_eliminator.bytecodes.c
-Writes the cases to tier2_redundancy_eliminator_cases.c.h, which is #included
in Python/optimizer_analysis.c.
+"""Generate the cases for the tier 2 optimizer.
+Reads the instruction definitions from bytecodes.c and optimizer_bytecodes.c
+Writes the cases to optimizer_cases.c.h, which is #included in
Python/optimizer_analysis.c.
"""
import argparse
@@ -30,8 +30,8 @@
from lexer import Token
from stack import StackOffset, Stack, SizeMismatch, UNUSED
-DEFAULT_OUTPUT = ROOT / "Python/tier2_redundancy_eliminator_cases.c.h"
-DEFAULT_ABSTRACT_INPUT = ROOT /
"Python/tier2_redundancy_eliminator_bytecodes.c"
+DEFAULT_OUTPUT = ROOT / "Python/optimizer_cases.c.h"
+DEFAULT_ABSTRACT_INPUT = ROOT / "Python/optimizer_bytecodes.c"
def validate_uop(override: Uop, uop: Uop) -> None:
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]