layout | title |
---|---|
default |
Visualizations |
To evaluate, which jump-functions representation performs best when analyzing LLVM IR generated from real-world C and C++ programs, we visualize our experimental results in several ways.
We use scatter plots showing the IDESolver++ with the proposed jump-functions representations compared to the IDESolver++ using the nested representation inherited from PhASAR's current IDESolver. The left plot shows the runtime speedup (higher is better), whereas the right plot shows the relative memory usage (smaller is better).
The IDESolver++ was configured to use JFND (blue), JFN (orange), and JFNE (green). The both horizontal lines are set at 1 meaning no speedup. We use a log-scale to account for the non-linear distribution of speedups.
The target programs are ordered. In the following, we show the same plots with different orderings for the target programs to reveal any correlations.
The target programs are sorted in ascending order by their number of LLVM IR instructions. This is the plot that we show in the paper.
The target programs are sorted in ascending order by their number of LLVM IR functions.
The target programs are sorted in ascending order by their number of LLVM IR functions that are address-taken. Hence, they are candidate targets for indirect calls through a function-pointer.
The target programs are sorted in ascending order by their number of global variables + global constants in LLVM IR.
The target programs are sorted in ascending order by their number of LLVM IR call-sites.
The target programs are sorted in ascending order by their number of indirect LLVM IR call-sites, i.e., through a function-pointer.
The target programs are sorted in ascending order by their number basic blocks in LLVM IR.
<style media="screen"> .box { display: flex; flex-wrap: wrap; padding: 0 4px; } .column { border-bottom:1px solid gray; flex: 50%; max-width: 50%; min-width: 50%; padding: 4px 4px; margin-bottom: 1ex; text-align: center; } .column img { margin-bottom: 8px; vertical-align: middle; width: 100%; } </style>