-
-
Notifications
You must be signed in to change notification settings - Fork 83
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
Improve CHA runtime and improve InvokeInterface resolving #734
Conversation
JonasKlauke
commented
Oct 30, 2023
•
edited
Loading
edited
- Reworked CHA algorithm to save runtime
- Removed Utilityclass MethodDispatchResolver
- ICFGDotExporter uses callgraph to decide dispatches
- Callgraph algorithm ignore Library classes
- Added Comparator to sort classes by their hierarchy
Transformed Callgraphs tests to bytecode. Improved Default Method resolving
…the invoke is an interface invoke
…untime # Conflicts: # sootup.core/src/main/java/sootup/core/typehierarchy/MethodDispatchResolver.java
… unnecessary tests. Moved utility methods to the actual class using them. moved tests.
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## develop #734 +/- ##
=============================================
- Coverage 63.64% 63.58% -0.06%
+ Complexity 3360 3338 -22
=============================================
Files 317 317
Lines 15124 15072 -52
Branches 2551 2543 -8
=============================================
- Hits 9625 9583 -42
+ Misses 4608 4601 -7
+ Partials 891 888 -3 ☔ View full report in Codecov by Sentry. |
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.
looks good!
just not sure about whether the other methods (currently unused by the framework) from MethodDispatchResolver
would still be a nice addition to the framework?
…method is in the missing class. Changed the test to use the bytecode frontend
Which Method do you mean?
Sourcecode might not be correct. I wrote this down from mind |
But we could think about if we want to provide an option to define a maximum depth for a call graph algorithm. For example a method which just looks at the given method and does not continue further. But for RTA we have the problem that we miss instantiations of classes which result in new targets. But CHA should be okay |