[3.13] gh-141808: Don't remove the JIT stencils when building with PGO (GH-141809) (GH-142657) (#142955)

See: https://discuss.python.org/t/building-the-jit-with-pre-built-stencils/91838/12
(cherry picked from commit 8914148151)
(cherry picked from commit 73c80f69ba)

Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
Co-authored-by: Mikhail Efimov <efimov.mikhail@gmail.com>
This commit is contained in:
Miro Hrončok 2025-12-20 12:58:01 +01:00 committed by GitHub
parent 98d97d76a8
commit 5d82520e38
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 15 additions and 4 deletions

View file

@ -730,7 +730,7 @@ check-app-store-compliance:
# Profile generation build must start from a clean tree.
profile-clean-stamp:
$(MAKE) clean
$(MAKE) clean-profile
touch $@
# Compile with profile generation enabled.
@ -2972,7 +2972,6 @@ clean-retain-profile: pycremoval
-rm -rf Python/deepfreeze
-rm -f Python/frozen_modules/*.h
-rm -f Python/frozen_modules/MANIFEST
-rm -f jit_stencils.h
-find build -type f -a ! -name '*.gc??' -exec rm -f {} ';'
-rm -f Include/pydtrace_probes.h
-rm -f profile-gen-stamp
@ -2991,13 +2990,21 @@ profile-removal:
rm -f profile-run-stamp
rm -f profile-bolt-stamp
.PHONY: clean
clean: clean-retain-profile clean-bolt
.PHONY: clean-profile
clean-profile: clean-retain-profile clean-bolt
@if test @DEF_MAKE_ALL_RULE@ = profile-opt -o @DEF_MAKE_ALL_RULE@ = bolt-opt; then \
rm -f profile-gen-stamp profile-clean-stamp; \
$(MAKE) profile-removal; \
fi
# gh-141808: The JIT stencils are deliberately kept in clean-profile
.PHONY: clean-jit-stencils
clean-jit-stencils:
-rm -f jit_stencils*.h
.PHONY: clean
clean: clean-profile clean-jit-stencils
.PHONY: clobber
clobber: clean
-rm -f $(BUILDPYTHON) $(LIBRARY) $(LDLIBRARY) $(DLLLIBRARY) \

View file

@ -0,0 +1,4 @@
When running ``make clean-retain-profile``, keep the
generated JIT stencils. That way, the stencils are not generated twice when
Profile-guided optimization (PGO) is used. It also allows distributors to
supply their own pre-built JIT stencils.