Skip to content

Commit 6815744

Browse files
authored
Parallelize regen-cases (#116446)
This makes a huge difference when using `make -j regen-cases`.
1 parent 72dbea2 commit 6815744

File tree

1 file changed

+44
-11
lines changed

1 file changed

+44
-11
lines changed

Makefile.pre.in

Lines changed: 44 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1872,39 +1872,72 @@ Objects/obmalloc.o: $(srcdir)/Objects/mimalloc/alloc.c \
18721872

18731873
Objects/mimalloc/page.o: $(srcdir)/Objects/mimalloc/page-queue.c
18741874

1875+
1876+
# Regenerate various files from Python/bytecodes.c
1877+
# Pass CASESFLAG=-l to insert #line directives in the output
1878+
18751879
.PHONY: regen-cases
1876-
regen-cases:
1877-
# Regenerate various files from Python/bytecodes.c
1878-
# Pass CASESFLAG=-l to insert #line directives in the output
1880+
regen-cases: \
1881+
regen-opcode-ids regen-opcode-targets regen-uop-ids regen-opcode-metadata-py \
1882+
regen-generated-cases regen-executor-cases regen-optimizer-cases \
1883+
regen-opcode-metadata regen-uop-metadata
1884+
1885+
.PHONY: regen-opcode-ids
1886+
regen-opcode-ids:
18791887
$(PYTHON_FOR_REGEN) $(srcdir)/Tools/cases_generator/opcode_id_generator.py \
18801888
-o $(srcdir)/Include/opcode_ids.h.new $(srcdir)/Python/bytecodes.c
1889+
$(UPDATE_FILE) $(srcdir)/Include/opcode_ids.h $(srcdir)/Include/opcode_ids.h.new
1890+
1891+
.PHONY: regen-opcode-targets
1892+
regen-opcode-targets:
18811893
$(PYTHON_FOR_REGEN) $(srcdir)/Tools/cases_generator/target_generator.py \
18821894
-o $(srcdir)/Python/opcode_targets.h.new $(srcdir)/Python/bytecodes.c
1895+
$(UPDATE_FILE) $(srcdir)/Python/opcode_targets.h $(srcdir)/Python/opcode_targets.h.new
1896+
1897+
.PHONY: regen-uop-ids
1898+
regen-uop-ids:
18831899
$(PYTHON_FOR_REGEN) $(srcdir)/Tools/cases_generator/uop_id_generator.py \
18841900
-o $(srcdir)/Include/internal/pycore_uop_ids.h.new $(srcdir)/Python/bytecodes.c
1901+
$(UPDATE_FILE) $(srcdir)/Include/internal/pycore_uop_ids.h $(srcdir)/Include/internal/pycore_uop_ids.h.new
1902+
1903+
.PHONY: regen-opcode-metadata-py
1904+
regen-opcode-metadata-py:
18851905
$(PYTHON_FOR_REGEN) $(srcdir)/Tools/cases_generator/py_metadata_generator.py \
18861906
-o $(srcdir)/Lib/_opcode_metadata.py.new $(srcdir)/Python/bytecodes.c
1907+
$(UPDATE_FILE) $(srcdir)/Lib/_opcode_metadata.py $(srcdir)/Lib/_opcode_metadata.py.new
1908+
1909+
.PHONY: regen-generated-cases
1910+
regen-generated-cases:
18871911
$(PYTHON_FOR_REGEN) $(srcdir)/Tools/cases_generator/tier1_generator.py \
18881912
-o $(srcdir)/Python/generated_cases.c.h.new $(srcdir)/Python/bytecodes.c
1913+
$(UPDATE_FILE) $(srcdir)/Python/generated_cases.c.h $(srcdir)/Python/generated_cases.c.h.new
1914+
1915+
.PHONY: regen-executor-cases
1916+
regen-executor-cases:
18891917
$(PYTHON_FOR_REGEN) $(srcdir)/Tools/cases_generator/tier2_generator.py \
18901918
-o $(srcdir)/Python/executor_cases.c.h.new $(srcdir)/Python/bytecodes.c
1919+
$(UPDATE_FILE) $(srcdir)/Python/executor_cases.c.h $(srcdir)/Python/executor_cases.c.h.new
1920+
1921+
.PHONY: regen-optimizer-cases
1922+
regen-optimizer-cases:
18911923
$(PYTHON_FOR_REGEN) $(srcdir)/Tools/cases_generator/optimizer_generator.py \
18921924
-o $(srcdir)/Python/optimizer_cases.c.h.new \
18931925
$(srcdir)/Python/optimizer_bytecodes.c \
18941926
$(srcdir)/Python/bytecodes.c
1927+
$(UPDATE_FILE) $(srcdir)/Python/optimizer_cases.c.h $(srcdir)/Python/optimizer_cases.c.h.new
1928+
1929+
.PHONY: regen-opcode-metadata
1930+
regen-opcode-metadata:
18951931
$(PYTHON_FOR_REGEN) $(srcdir)/Tools/cases_generator/opcode_metadata_generator.py \
18961932
-o $(srcdir)/Include/internal/pycore_opcode_metadata.h.new $(srcdir)/Python/bytecodes.c
1933+
$(UPDATE_FILE) $(srcdir)/Include/internal/pycore_opcode_metadata.h $(srcdir)/Include/internal/pycore_opcode_metadata.h.new
1934+
1935+
.PHONY: regen-uop-metadata
1936+
regen-uop-metadata:
18971937
$(PYTHON_FOR_REGEN) $(srcdir)/Tools/cases_generator/uop_metadata_generator.py -o \
18981938
$(srcdir)/Include/internal/pycore_uop_metadata.h.new $(srcdir)/Python/bytecodes.c
1899-
$(UPDATE_FILE) $(srcdir)/Python/generated_cases.c.h $(srcdir)/Python/generated_cases.c.h.new
1900-
$(UPDATE_FILE) $(srcdir)/Include/opcode_ids.h $(srcdir)/Include/opcode_ids.h.new
1901-
$(UPDATE_FILE) $(srcdir)/Include/internal/pycore_uop_ids.h $(srcdir)/Include/internal/pycore_uop_ids.h.new
1902-
$(UPDATE_FILE) $(srcdir)/Python/opcode_targets.h $(srcdir)/Python/opcode_targets.h.new
1903-
$(UPDATE_FILE) $(srcdir)/Include/internal/pycore_opcode_metadata.h $(srcdir)/Include/internal/pycore_opcode_metadata.h.new
19041939
$(UPDATE_FILE) $(srcdir)/Include/internal/pycore_uop_metadata.h $(srcdir)/Include/internal/pycore_uop_metadata.h.new
1905-
$(UPDATE_FILE) $(srcdir)/Python/executor_cases.c.h $(srcdir)/Python/executor_cases.c.h.new
1906-
$(UPDATE_FILE) $(srcdir)/Python/optimizer_cases.c.h $(srcdir)/Python/optimizer_cases.c.h.new
1907-
$(UPDATE_FILE) $(srcdir)/Lib/_opcode_metadata.py $(srcdir)/Lib/_opcode_metadata.py.new
1940+
19081941

19091942
Python/compile.o: $(srcdir)/Include/internal/pycore_opcode_metadata.h
19101943

0 commit comments

Comments
 (0)