Change CSV format of call tree report #8774
Merged
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.
Related issue: #8496
This pull request reworks and simplifies the CSV output format of call graph report, generated by running Native Image with the
-H:+PrintAnalysisCallTree
and-H:PrintAnalysisCallTreeType=CSV
options.The new format consists of 3 files:
call_tree_methods.csv
call_tree_invokes.csv
call_tree_targets.csv
The first two files represent a list of methods and invokes, respectively, while the targets file creates a many-to-many mapping between invokes and target methods. This replaces the original system of direct and virtual nodes and edges. Direct and virtual calls are simply distinguished by
IsDirect
and they are connected to all relevant method implementations. Entrypoints are not listed in a separate file anymore, instead they are marked by a new column in the methods file.Most importantly, the new format eliminates the imprecision described in #8496.