-
Notifications
You must be signed in to change notification settings - Fork 1.8k
C++: Fix __finally
related inconsistencies
#17430
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
Conversation
da61e85
to
5754f8b
Compare
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.
The code changes LGTM! I'm surprised there are no reported IR inconsistency fixes in DCA, but I suppose we simply don't have any projects that use __try/__finally
😭
(I think this is a great PR to review in case someone wants to learn more about IR construction.)
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.
Less inconsistencies is great. 🎉
I have nothing to add about the QL.
As for the slowdown in keepassxc
, my best guess is that we're producing a chunk more data somewhere and the extra compute is being spread out among many predicates, so you're not seeing a spike. I've had no luck narrowing down what that extra data could be (my theory was less unreachable code).
I'm not seeing any slowdown locally, running queries like |
I ran the whole nightly suite. The few reruns I did seemed to consistently show:
So, much less then 10% looking at the wall-clock time. Curiously the predicate evaluation time is identical here. |
@geoffw0 Maybe I'm a bit too paranoid here? If so, I'd like to go ahead and merge this 😅 |
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've nothing against merging this.
Might be worth checking the next nightly DCA though, and bring this up if a similar regression is observed.
Will do! |
Thanks for your input! |
Note that although this fixes some inconsistencies this does not (yet) accurately reflect the semantics of
__finally
blocks. See the highlighted paragraph here.Both DCA experiments are relevant. DCA shows a 10%~11% slowdown on keepassxc. It' not clear to me where this is coming from. I locally tried rerunning and I do see a small slowdown locally too (< 10%, but I was running single threaded), and the largest joins are identical between the two versions. So, I'm not sure what to do with this.