next up previous contents
Next: System Overview Up: User Manual of SALTO: Previous: Contents

Introduction

SALTO is a retargetable framework for developing a whole spectrum of tools that manipulate programs expressed in assembly language. The objective of such a system is to provide the user with a single environment that will allow him to implement tools needed for performance tuning on low-level codes, including assembly code schedulers, and profiling and tracing tools. The latter provide the user with information on where to focus optimizations and how efficient they can be, therefore allowing trade-off choices. Such a system is intended to address general computing as well as embedded systems, where optimizations are more critical and aggressive, but also where time-consuming techniques are more tolerable.

A large number of tools have been built to experiment with new optimizations or particular hardware mechanisms. This development phase is generally time-consuming and requires much investment. Utilities able to trace or profile programs exist, but they are often provided ``as is'': they are target-specific, and studying the behavior of another architecture or a different problem is likely to require a thorough rewriting of large pieces of code. As SALTO is retargetable wrt. the instruction set and the hardware details of the target hardware, it is likely to be a major help for such studies.

With SALTO we plan to address the field of software analysis and optimization for superscalar and VLIW architectures. The tool provides support for replicated resources and arbitrary levels of detail in hardware models. SALTO overcomes many limitations of previous solutions: it does not implement any algorithm by itself, and does not commit the user to a fixed set of techniques. Therefore, it should not be viewed as a compiler. At the same time, it does not operate on executable codes: the user of the tool can use human-readable information available in the assembly code to drive optimization of instrumentation strategies, whereas in executable code editors, much of this information is already lost.

To the user, SALTO provides an object-oriented interface designed to help manipulating assembly code. The classes provided by the interface allow to represent the complete description of the control-flow graph of the program (when available) and a model of the target architecture. They are easily accessible through the user interface and provide a comfortable way to implement algorithms without having to worry about supporting software.




next up previous contents
Next: System Overview Up: User Manual of SALTO: Previous: Contents

Erven Rohou
Fri Oct 17 09:15:29 MET DST 1997