-
Notifications
You must be signed in to change notification settings - Fork 1.9k
C++: Reorder some predicates in SSAConstruction #6076
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
geoffw0
left a comment
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.
Changes look about as safe as they come. Would like to see a bit more performance information, but the CPP Differences job appears to have failed.
Indeed. I'll run a new job once Jenkins recovers. |
|
OOI: Why/How does this work? |
Basically, this piece of hypothetical QL: foo(a, b) and bar(a, b)will be compiled into this slightly simplified piece of relational algebra: i.e., give me the tuples foo(a, b, c) and bar(b, c)the relational algebra (again, simplified) will be something like (assuming we only need the second and third column): Notice that we need a then the (simplified) relational algebra will again be a nice and simple join: Does that make sense? |
geoffw0
left a comment
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.
Again, the changes look safe but we're still waiting for some actual performance numbers (I'd be happy with a slight improvement, or no change + tuple counts appear to be lower).
A run on 5a62cbe finished and showed no real difference. I noticed that the changes I made generated a couple of new unnecessary SCANs which I've fixed in b138e1e. That one should hopefully fare better. |
b138e1e to
743eae8
Compare
|
Code changes still LGTM. |
|
(sorry I missed the |
No worries 😄 |
|
It looks like there's no real performance gain here. In fact, there might be a slight performance regression which I can't quite explain. I'll close this PR for now. It might be worth investigating the affected RA more closely in the future. |
|
That's a shame, the idea seems quite promising. |
When comparing on https://asgerf.github.io/codeql-flamegraph-viewer/, this reduces the
tuples from dominated dependenciesnumber from the IR stage by about 10% when running onOpenJDK. I don't know if it has a measurable impact, but it's worth a try!CPP-Differences: https://jenkins.internal.semmle.com/job/Changes/job/CPP-Differences/2100/