8000 gh-123153: Fix PGO builds with free-threading on Windows by mdboom · Pull Request #125607 · python/cpython · GitHub
[go: up one dir, main page]

Skip to content

gh-123153: Fix PGO builds with free-threading on Windows #125607

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
Oct 17, 2024
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 13 additions & 6 deletions Python/ceval.c
Original file line number Diff line number Diff line change
Expand Up @@ -761,12 +761,19 @@
* so consume 3 units of C stack */
#define PY_EVAL_C_STACK_UNITS 2

#if defined(_MSC_VER) && defined(_Py_USING_PGO) && defined(_Py_JIT)
/* _PyEval_EvalFrameDefault is too large to optimize for speed with
PGO on MSVC when the JIT is enabled. Disable that optimization
around this function only. If this is fixed upstream, we should
gate this on the version of MSVC.

/* _PyEval_EvalFrameDefault is too large to optimize for speed with PGO on MSVC
when the JIT is enabled or GIL is disabled. Disable that optimization around
this function only. If this is fixed upstream, we should gate this on the
version of MSVC.
*/
#define DO_NOT_OPTIMIZE_INTERP_LOOP ( \
(defined(_MSC_VER) && \
defined(_Py_USING_PGO) && \
(defined(_Py_JIT) || \
defined(Py_GIL_DISABLED))))

#if DO_NOT_OPTIMIZE_INTERP_LOOP

Check warning on line 776 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Address sanitizer

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 776 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Address sanitizer

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 776 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Address sanitizer

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 776 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Address sanitizer

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 776 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Hypothesis tests on Ubuntu

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 776 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Hypothesis tests on Ubuntu

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 776 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Hypothesis tests on Ubuntu

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 776 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Hypothesis tests on Ubuntu

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 776 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Ubuntu / build and test (ubuntu-22.04)

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 776 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Ubuntu / build and test (ubuntu-22.04)

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 776 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Ubuntu / build and test (ubuntu-22.04)

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 776 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Ubuntu / build and test (ubuntu-22.04)

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 776 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Ubuntu (free-threading) / build and test (ubuntu-22.04)

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 776 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Ubuntu (free-threading) / build and test (ubuntu-22.04)

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 776 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Ubuntu (free-threading) / build and test (ubuntu-22.04)

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 776 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Ubuntu (free-threading) / build and test (ubuntu-22.04)

this use of "defined" may not be portable [-Wexpansion-to-defined]
# pragma optimize("t", off)
/* This setting is reversed below following _PyEval_EvalFrameDefault */
#endif
Expand Down Expand Up @@ -1146,7 +1153,7 @@

}

#if defined(_MSC_VER) && defined(_Py_USING_PGO) && defined(_Py_JIT)
#if DO_NOT_OPTIMIZE_INTERP_LOOP

Check warning on line 1156 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Address sanitizer

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 1156 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Address sanitizer

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 1156 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Address sanitizer

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 1156 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Address sanitizer

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 1156 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Hypothesis tests on Ubuntu

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 1156 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Hypothesis tests on Ubuntu

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 1156 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Hypothesis tests on Ubuntu

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 1156 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Hypothesis tests on Ubuntu

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 1156 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Ubuntu / build and test (ubuntu-22.04)

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 1156 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Ubuntu / build and test (ubuntu-22.04)

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 1156 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Ubuntu / build and test (ubuntu-22.04)

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 1156 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Ubuntu / build and test (ubuntu-22.04)

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 1156 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Ubuntu (free-threading) / build and test (ubuntu-22.04)

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 1156 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Ubuntu (free-threading) / build and test (ubuntu-22.04)

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 1156 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Ubuntu (free-threading) / build and test (ubuntu-22.04)

this use of "defined" may not be portable [-Wexpansion-to-defined]

Check warning on line 1156 in Python/ceval.c

View workflow job for this annotation

GitHub Actions / Ubuntu (free-threading) / build and test (ubuntu-22.04)

this use of "defined" may not be portable [-Wexpansion-to-defined]
# pragma optimize("", on)
#endif

Expand Down
Loading
0