outputs the histogram in SVG (Scalable Vector Graphics) format. The file that the histogram is written to is selected through a file selector dialog that pops up.
outputs the histogram in an EPS (Encapsulated Postscript) format. The file that the histogram is written to is selected through a file selector dialog that pops up.
outputs the histogram in an PNG (Encapsulated Postscript) format. The file that the histogram is written to is selected through a file selector dialog that pops up. The file selector allows to set the resolution and width and height of the exported PNG drawing of the histogram.
outputs the reuse distance data to a comma separated value (CSV) to a number of CSV-files in a newly created directory. The directory to store the CSV-files in is selected through a file selector dialog that pops up. An example of such a CSV file for the
example1.slo.zip file is shown in Table 3.1, “Example of exported CSV file: example1.slo.zip.noncumul.absolute.csv”. It contains the histogram in table form. Eight of these CSV file are written, one for each possible combination of with or without "absolute", "noncumul" and "summary". "absolute" corresponds to a CSV file with absolute values for the number of reuses at a certain distance for a certain refactoring. "relative", or non-"absolute", corresponds to a CSV-file where the relative number of reuses at a certain distance are encoded. This corresponds to the histogram after clicking . For each distance, the numbers add up to 1. "noncumul" contains the regular histograms, while the "cumul"-versions contain the reverse-cumulative histograms, corresponding to clicking . In the "summary" CSV-files, respectively all tiling-like, fusion-like, and function-fusion-like optimizations are combined.
Allows to compare the reuse distance histogram with the histogram in another .slo.zip file. After clicking this menu option, a file selector pops up to select another .slo.zip file. After selecting, the histograms from both .slo.zip files are shown in a single chart. This comes in handy, e.g., to see in what way the reuse distance histogram has changed after a refactoring. An example is shown in Figure 3.1, “Screenshot of comparison between two reuse distance histograms”
Table 3.1. Example of exported CSV file: example1.slo.zip.noncumul.absolute.csv
Highlights the 10 most important optimizations in the source code, as if the user had individually clicked on the 10 most important optimizations in the histogram. The most important optimizations are determined by computing a weight for each optimization. The larger the weight, the more important the optimization is considered to be. The formula to compute this weight is:
Deletes all indications in the source code of the optimizations that have been highlighted so far.
Pops up the following dialog that lets you set the lower and upper bounds of the X and Y axes in the histogram.
When this option is selected, the reverse cumulative histogram is shown, instead of a regular histogram. In a reverse cumulative histogram, all reuses that occur at larger distances are represented in each bar, instead of only the reuses with the same distance. In this view, all misses for a specific cache size can more easily be determined. E.g. consider the figures below show both the normal(left) and the reverse cumulative histograms(right) of a certain program run. The size of the L1 cache is indicated by a vertical black line. To find out which reuses miss the cache in the left, normal, histogram, you need to look at all bars to the right of the L1 cache size. In contrast, to find out the cache missing reuses fromthe reverse cumulative histogram (right), you just need to look to the reuses that are displayed where the L1 cache size is drawn. (TODO: look for a screenshot where the advantage of using a reverse cumulative histogram is more obvious)
This option is used to set the cache sizes that are drawn in the background of the histogram view. An example of two different modes of cache size indication is shown in Figure 3.2, “Screenshot of two possible indications of cache sizes in the reuse distance histogram: by interval and by borders”. After clicking, a dialog pops up to set the cache sizes, an example of which is also found in Figure 3.2, “Screenshot of two possible indications of cache sizes in the reuse distance histogram: by interval and by borders”. From top to bottom, the dialog contains following controls:
controls the size in pixels of the "L1", "L2" etc. labels of the cache size in the histogram
controls the number of cache levels indicated
controls whether cache sizes are visualized by a colored background (interval, see first screenshot above), or by vertical lines at the cache size boundaries (borders, see second screenshot above).
For each of the number of cache levels selected above, a slider is used to determine the size of the cache level. The size is expressed as the log2 of the reuse distance. On the right, the 'Choose color' button allows to select the color to be used for the background, when cache sizes are visualized by a colored background (see interval mode above).
pops up a file selector to save the cache size info to a file. Make sure to end the name of the files with '.cachesizes'
pops up a file selector to load an earlier saved the cache size info.
Figure 3.2. Screenshot of two possible indications of cache sizes in the reuse distance histogram: by interval and by borders