Salto: System for Assembly Language Transformation and Optimization
Abstract
On critical applications, particularly embedded systems, the performance
tuning requires multiple passes. Salto (System for Assembly Language
Transformation and Optimization) is a retargetable framework for developing
all the spectrum of tools that are needed for performance tuning on
low-level codes (assembly-languages) on uniprocessors. Salto enables the
building of profiling, tracing and optimization tools. The user is
responsible for giving a machine description of the target architecture,
which includes instruction-set of the processor, precise hardware
configuration and reservation-tables for all instructions, but high-level
functions are provided to him for writing any tool corresponding to his
needs.
Moreover Salto will be a part of a global solution for manipulating
assembly-code to implement low-level code restructuration as well
as to provide a high-level code restructurer with useful information
collected from the assembler code and from instruction profiling.
Salto has been tested on Intel platforms running Linux (i486) and Solaris
(PentiumPro) and on a Sparcstation running SunOs 4.1. A machine description
for the Sparc v7 architecture is currently available. Two examples, a basic
block instrumentation and a local reordering optimization, are given in the
paper as illustration.