-
Notifications
You must be signed in to change notification settings - Fork 1.9k
C++: Refactor ProductFlow to have a DataFlow::ConfigSig-like interface
#12615
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
| module Internal { | ||
| class Conf1 extends DataFlow::Configuration { | ||
| Conf1() { this = "Conf1" } | ||
| private module Config1 implements DataFlow::StateConfigSig { |
Check warning
Code scanning / CodeQL
Data flow configuration module naming
| exists(Configuration conf, DataFlow::PathNode source1 | | ||
| conf.isSourcePair(source1.getNode(), source1.getState(), source, state) and | ||
| any(Conf1 c).hasFlowPath(source1, _) | ||
| module Config2 implements DataFlow::StateConfigSig { |
Check warning
Code scanning / CodeQL
Data flow configuration module naming
MathiasVP
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.
LGTM!
|
Should I run DCA on this with |
Yes, please. I haven't used that suite in this quarter, but I assume it still works 🤞 |
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.
CodeQL found more than 10 potential problems in the proposed changes. Check the Files changed tab for more details.
MathiasVP
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.
LGTM! I especially like that last commit 😍.
|
I did see a slow-down on the first DCA experiment I ran. Re-running now to see if that still occurs with the latest commit. |
b2ecbca to
9c2e702
Compare
| Config::isBarrier2(node) | ||
| } | ||
|
|
||
| predicate isBarrier1 = Config::isBarrier1/1; |
Check warning
Code scanning / CodeQL
Dead code
|
|
||
| predicate isBarrier1 = Config::isBarrier1/1; | ||
|
|
||
| predicate isBarrier2 = Config::isBarrier2/1; |
Check warning
Code scanning / CodeQL
Dead code
|
|
||
| predicate isBarrierOut2 = Config::isBarrierOut2/1; | ||
|
|
||
| predicate isAdditionalFlowStep1 = Config::isAdditionalFlowStep1/2; |
Check warning
Code scanning / CodeQL
Dead code
| Config::isAdditionalFlowStep1(node1, node2) | ||
| } | ||
|
|
||
| predicate isAdditionalFlowStep2 = Config::isAdditionalFlowStep2/2; |
Check warning
Code scanning / CodeQL
Dead code
MathiasVP
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.
LGTM. I included a small suggestion, but since this is already a major performance boost compared to the prior DCA run I think it's fine to merge this as-is if DCA comes back happy 🎉.
bc9bb5a to
12702b5
Compare
|
DCA looks somewhat better after the join-order fixes and a rebase. Still maybe a bit too much slowdown? |
Fantastic! There may be a very small slowdown, but I don't think this is something that should block the merge. |
MathiasVP
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.
LGTM!
No description provided.