gh-111786: Use separate opcode vars for Tier 1 and Tier 2#112289
gh-111786: Use separate opcode vars for Tier 1 and Tier 2#112289gvanrossum merged 2 commits intopython:mainfrom
Conversation
00a506a to
27a5654
Compare
This makes Windows about 3% faster on pyperformance benchmarks.
27a5654 to
f362f9a
Compare
gvanrossum
left a comment
There was a problem hiding this comment.
Nice, looks very straightforward.
Though based on our offline conversation, did you find out whether Windows PGO uses -E?
Python/ceval.c
Outdated
| uint8_t opcode; /* Current opcode */ | ||
| int oparg; /* Current opcode argument, if any */ |
There was a problem hiding this comment.
Heh, I would have kept the comments at the same column, so you don't appear to be editing the oparg line. :-)
There was a problem hiding this comment.
Sure -- I think my editor did something magical.
I don't know, but I think that's orthogonal to this. Currently on the benchmarking infrastructure, we only pass the |
Ah, sorry. Should I merge this then?
1% faster than without Tier 2, or 1% faster than main? |
Yeah, I think that's fine.
When you turn Tier 2 on during build (PGO collection), it's 1% faster than if you don't. (Using Tier 2 at runtime in both cases). |
That's great news! |
…on#112289) This makes Windows about 3% faster on pyperformance benchmarks.
…on#112289) This makes Windows about 3% faster on pyperformance benchmarks.
Suggested by @neonene: #111786 (comment)
This makes Windows about 3% faster on pyperformance benchmarks. See analysis here