The Salto Project

Salto is a retargetable framework for developing the whole spectrum of tools
that manipulates assembly-language. The objective of such a system is to
provide the user with a single environment that will allow him to implement
the tools that are needed for performance tuning on low-level codes; this set
of tools includes assembly-code schedulers (such as software pipelining), as
well as profiling and tracing tools that provide the user with information on
where to focus optimizations and how efficient they can be, therefore allowing
tradeoff choices. Such a system is intended to address general computing as
well as embedded systems for which optimizations are more critical and
aggressive, but time-consuming techniques are more tolerable.

Salto is fully and easily retargetable with respect to the hardware details
and the instruction set architecture. Any relevant piece of hardware has to be
described in a machine description file. Then resource usage may be
represented for any instruction therefore enabling data dependences
computation.