C++: Split IRBlock index from IRBlock membership#133
Merged
Conversation
Instead of computing these two things in one predicate, they are computed in separate predicates and then joined. This splits the predicate `getInstruction`, which took 81s before, into predicates that together take 20s on a medium-sized db.
be617dc to
5541b9f
Compare
Contributor
Author
|
Rebased to fix conflicts. |
dave-bartolomeo
approved these changes
Sep 5, 2018
Contributor
dave-bartolomeo
left a comment
There was a problem hiding this comment.
LGTM
If you've measured a speedup for this change on a real snapshot, and you've also measured a speedup for the corresponding non-IR change, I'm willing to believe that the speedup is real. The plausible explanations for why it might not be a real speedup (e.g. slightly reduced memory consumption eliminated swapping) were unlikely to hold for both changes.
Contributor
Author
|
Yes, I tested both this and #123 independently. |
aibaars
added a commit
that referenced
this pull request
Oct 14, 2021
AST: RestAssignment and LhsExpr
smowton
pushed a commit
to smowton/codeql
that referenced
this pull request
Dec 6, 2021
Extract missing functions directly in kotlin package
erik-krogh
pushed a commit
to erik-krogh/ql
that referenced
this pull request
Dec 15, 2021
Update readme with alerts and actions information
erik-krogh
pushed a commit
to erik-krogh/ql
that referenced
this pull request
Dec 15, 2021
Update readme with alerts and actions information
MathiasVP
added a commit
to MathiasVP/ql
that referenced
this pull request
Aug 10, 2025
…cit-models-followup PS: github#132 follow-up
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is the same change as #123 but for the IR. I still don't know exactly why it's faster, and I invite others to try and replicate my benchmark. I'm using the following query to compare timing and correctness:
In the QL4E I'm running, the time spent on
getInstructionis too low in the "Clause timing report" at the bottom of the log. To see how long the predicate or its replacements actually take, subtract the timestamps before and after in the log output.