next up previous
Next: The Front End Up: - LooPo - Loop Previous: Extension to affine-by-statement scheduling

The Structure of LooPo

 

Like most compilers, LooPo consists of a number of modules which transform the source program to an executable target program. There are modules for scanning and parsing, dependence analysis, scheduling, allocation, target loop nest generation and target code output. There is also a graphical displayer (Dispo) of index spaces and iteration dependence graphs of loop nests.

Each of these modules reflects a self-contained part of the project and resides in a separate binary file. A front end provides a graphical interface by which he/she can control all modules of LooPo. In order to optimize LooPo's results and suit the needs of the user, most modules provide an option window where specific features can be altered.

Communication between modules is usually realized by data exchange via files in a temporary directory whose location is being displayed in the top-level window. Interaction between the front end and the other modules takes place by uni-directional FIFO communication in one direction and by command line options in the other.

In the sequel detailed information about the modules and their usage is being presented.





Martin Griebl
Wed Apr 24 11:24:00 MET DST 1996