Skip to content

Conversation

neonene
Copy link
Contributor

@neonene neonene commented Sep 29, 2021

Currently, MSVC tends to share the same code blocks in a too big function.
In the ceval-loop, NEXTOPARG() or DISPATCH() macros are unexpectedly shared and joined with (long) jump instructions, which disturb PGO profiling.

With this PR, MSVC seems to generate expected codes for #25244.

https://bugs.python.org/issue45116

@pablogsal
Copy link
Member

I have not reviewed this but this PR should not be landed before #28488, otherwise is going to be a nightmare to validate that code path again.

@pablogsal
Copy link
Member

are unexpectedly shared and joined

But that is designed like that on pourpose, and has proven to improve performance in the past. This would need some validation because AFAIK it goes against previous work and knowledge.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants