New GitHub issue #121338 from mdboom:<br>
<hr>
<pre>
# Bug report
### Bug description:
When the Tier 2 interpreter loop was first merged with the Tier 1 interpreter loop, the MSVC compiler would crash when building for PGO, presumably due to the very large size of the function. #111786 introduced a `#pragma optimize("off")` to turn off optimization around `_PyEval_EvalFrameDefault` which seems to have side-stepped the crash.
[This crash was reported to the MSVC compiler team](https://dev.azure.com/devdiv/DevDiv/_workitems/edit/1914472), but there hasn't been resolution around that.
In the intervening time, the interpreter loop has changed significantly again, and it seems that this `#pragma` hack is no longer necessary, either for default builds (which no longer include a Tier 2 interpreter) and `--enable-experimental-jit` builds (which do). I propose we remove it for the sake of removing what should have been a temporary hack and to give the compiler the fairest shot at doing its best work. Benchmarking shows no significant change for either a [default build](https://github.com/faster-cpython/benchmarking-public/tree/main/results/bm-20240702-3.14.0a0-a03affd) or a [JIT build](https://github.com/faster-cpython/benchmarking-public/tree/main/results/bm-20240702-3.14.0a0-a03affd-JIT).
I'm not sure whether this should also be backported to 3.13. It's not really a bugfix, but I would certainly feel better shipping 3.13.0 without a weird compiler workaround (which would be harder to remove after the rc).
### CPython versions tested on:
CPython main branch
### Operating systems tested on:
Windows
</pre>
<hr>
<a href="https://github.com/python/cpython/issues/121338">View on GitHub</a>
<p>Labels: type-bug, performance, OS-windows</p>
<p>Assignee: </p>