-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
JIT: revise how synthesis treats handler regions #100899
Conversation
Instead of giving hander regions a fraction of the entry weight, give them a small fixed weight. This is intended to combat the lack of profile propagation out of handler regions, where there are currently sometimes weight discontinuities large enough to cause profile check asserts. Contributes to dotnet#93020.
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
@amanasifkhalid PTAL This will be needed to land #100869 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks!
@@ -45,7 +45,7 @@ class ProfileSynthesis | |||
{ | |||
} | |||
|
|||
static constexpr weight_t exceptionScale = 0.001; | |||
static constexpr weight_t exceptionWeight = 0.00001; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm a bit surprised to see this fixed weight is smaller than the scale factor it's replacing. Did you get this number through trial and error, or?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nothing magic here. Just wanted a value that is small enough to ignore in an absolute sense.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see -- so close to zero, but it won't mark the block with BBF_RUN_RARELY
.
Instead of giving hander regions a fraction of the entry weight, give them a small fixed weight. This is intended to combat the lack of profile propagation out of handler regions, where there are currently sometimes weight discontinuities large enough to cause profile check asserts. Contributes to dotnet#93020.
Instead of giving hander regions a fraction of the entry weight, give them a small fixed weight. This is intended to combat the lack of profile propagation out of handler regions, where there are currently sometimes weight discontinuities large enough to cause profile check asserts.
Contributes to #93020.
A small number of Diffs.