next up previous contents
Next: Description Organization Up: SALTO Target Description Specifications Previous: SALTO Target Description Specifications

Description Overview

 

The description of the target system contains the information on the architecture and its basic software environment, namely:

The basic entities specified in the description of the assembly language are:

Resources appearing in the target machine description are a model of hardware components potentially relevant to the optimization process. Therefore, any resource which can limit the exploitation of parallelism available in the source code should be represented, allowing its description to be used in the optimization process.

Resources which share the same set of properties (general registers, replicated functional units, etc.) are grouped into resource classes. Classes can be then used to designate ``generic resources'', such as ``one of the general-purpose registers''.

References to resources and resource classes appear in the description of reservation tables of individual instructions or operations. A reservation table indicates which resources are used by an instruction, at which cycles, and what use the instruction makes of each resource listed.

The reservation table concept provides a basis for the optimization process in presence of multiple resources, instruction pipelines, and instruction-specific scheduling constraints, by allowing the detection of conflicts and alternative resources. Reservation tables are attached to instructions when defining the target instruction set.

Instruction set descriptions contain the name (i.e., the mnemonic) of each instruction or operation, its format and operands, and a reservation table that includes all resources (or resource classes) required for its execution. The description of each macro-instruction contains the corresponding sequence of basic instructions or operations, and the rules for constructing their operands from the actual operands of the macro.

The instruction set description is completed by semantical information attached to control flow instructions. The three types of semantical constraints that are supported are delayed load, delayed branch, and write by-pass.

Finally, the description of assembly directives allows to analyze data declarations, data and code interleaving, alignment information etc.

The description of target systems uses a declarative language inspired by RTL, the ``Register Transfer Language'' used in machine descriptions of the GCC compiler suite. A description consists of a sequence of RTL definitions, in which any non-standard object must be defined before use. In addition, cpp directives can be used to avoid unnecessary expression repetition and to provide a hierarchy to the description files.

RTL's syntax is close to that of LISP. Comments start with a semi-colon (``;'') and continue to the end of line. Four types of RTL objects are supported in SALTO:


next up previous contents
Next: Description Organization Up: SALTO Target Description Specifications Previous: SALTO Target Description Specifications

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