The SLO Handbook


Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts.


SLO analyzes the causes of poor temporal data locality, and suggests program refactorings that are required to increase locality. After applying the suggested refactorings, the locality is improved, the number of data cache misses is typically reduced, and execution speed may be enhanced.

Table of Contents

1. Introduction
1. Comparison between using SLO and more traditional cache profilers
2. Using SLO
1. Getting Started: How to start up SLO
3. Command Reference
1. The reuse distance histogram window
1.1. The File Menu
1.2. The View Menu
2. The source code window
2.1. The File Menu
2.2. The Window Menu
2.3. The View Menu
2.4. Other Interactive Actions
2.4.1. Interactive Actions in the Histogram window
2.4.2. Interactive Actions in the Source Code window
3. Command line options
4. Preferences file options
4. Creating files
1. Overview
2. Installing the GCC-SLO compiler
3. Instrumenting programs using GCC-SLO
3.1. Environment variables
4. Syntax of the files generated by GCC-SLO
4.1. Syntax of the BRD file
4.2. Syntax of the .bb_info files
4.3. Syntax of the .function_info files
4.4. Syntax of the .memaccess_info files
5. Example of Using SLO to optimize some SPEC2000 programs
1. Optimizing
2. Optimizing 181.equake
3. Optimizing 175.vpr
6. Questions and Answers
7. Credits and License

List of Figures

3.1. Screenshot of comparison between two reuse distance histograms
3.2. Screenshot of two possible indications of cache sizes in the reuse distance histogram: by interval and by borders

List of Tables

3.1. Example of exported CSV file:
3.2. Overview of preference variables

List of Examples

4.1. .function_info file contents example

List of Equations