Skip to content

Latest commit

 

History

History
142 lines (112 loc) · 6.11 KB

plots.md

File metadata and controls

142 lines (112 loc) · 6.11 KB
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.

Program Size Ordering

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.

phasar-iter-ide-speedup-target-scatter-vs-nested-sorted-size
phasar-iter-ide-mem-speedup-target-scatter-vs-nested-sorted-size

Number of Procedures

The target programs are sorted in ascending order by their number of LLVM IR functions.

phasar-iter-ide-speedup-target-scatter-vs-nested-sorted-fun
phasar-iter-ide-mem-speedup-target-scatter-vs-nested-sorted-fun

Number of Address-Taken Procedures

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.

phasar-iter-ide-speedup-target-scatter-vs-nested-sorted-addr-fun
phasar-iter-ide-mem-speedup-target-scatter-vs-nested-sorted-addr-fun

Number of Globals

The target programs are sorted in ascending order by their number of global variables + global constants in LLVM IR.

phasar-iter-ide-speedup-target-scatter-vs-nested-sorted-global
phasar-iter-ide-mem-speedup-target-scatter-vs-nested-sorted-global

Number of Call-Sites

The target programs are sorted in ascending order by their number of LLVM IR call-sites.

phasar-iter-ide-speedup-target-scatter-vs-nested-sorted-calls
phasar-iter-ide-mem-speedup-target-scatter-vs-nested-sorted-calls

Number of Indirect 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.

phasar-iter-ide-speedup-target-scatter-vs-nested-sorted-ind-calls
phasar-iter-ide-mem-speedup-target-scatter-vs-nested-sorted-ind-calls

Number of Basic Blocks

The target programs are sorted in ascending order by their number basic blocks in LLVM IR.

phasar-iter-ide-speedup-target-scatter-vs-nested-sorted-ind-blocks
phasar-iter-ide-mem-speedup-target-scatter-vs-nested-sorted-blocks
<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>