"Edinburgh Optimizing Software" Transformation Server

Copyright (C) 2000-2004 by Grigori G.Fursin
(Uses modified Octave library, Copyright (C) by Nigel Topham)

http://homepages.inf.ed.ac.uk/gfursin

ICSA, School of Informatics,
University of Edinburgh, UK


The Transformation Server supports various transformations including array padding, loop tiling and loop unrolling for Fortran 77 programs
Information: Current version: 1.06 Release date: 2004.August.14 Host: localhost Default port: 4711 Run: eos_tr_f77_server(.exe) eos_tr_f77_server --help ;for information about options. _run_single(.bat) ;if servers crashes, it exits to the OS _run_loop(.bat) ;if servers crashes, it restarts ;(useful for iterative compilation ; to prevent interrupting due to crashes) Instructions: *** Parse *** initiate transformations filein=[name_of_file] ; source filename fileout=[name_of_file] ; output filename (with parsing source) fileouterror=[name_of_file] ; file with parsing errors parse terminate *** Tree *** initiate transformations filein=[name_of_file] ; source filename fileout=[name_of_file] ; output filename (with tree) fileouterror=[name_of_file] ; file with parsing errors tree terminate *** Transformations *** initiate transformations filein=[name_of_file] ; source filename fileout=[name_of_file] ; output filename (with tree) fileouterror=[name_of_file] ; file with parsing errors procedure=[name] ; name of procedure loop=[number] ; loop number (starting from 1) array=[name] ; array name correct_loops ; optional ; - correct numbers for following loops ; in a queue ; is reseted automatically ; when procedure is changed ; so programmer needs to keep ; order of transformations ; on procedure level param=[prm] ; additional parameter for transformations loop_tiling=[prm] loop_interchange=[prm] loop_unrolling=[prm] loop_strip_mining=[prm] loop_splitting=[prm] loop_distribution array_pad=[prm] ; uses additional param array_gir=[prm] ; uses additional param go terminate
Selecting arrays and loops to transform (example): +'mgrid.f', 'psinv', 'array_decl', 'u' 'mgrid.f', 'psinv', 'array_decl', 'r' 'mgrid.f', 'psinv', 'array_decl', 'c' +'mgrid.f', 'psinv', 'loop', 'i3', '2', '153', '173' 'mgrid.f', 'psinv', 'loop', 'i2', '1', '154', '172' +'mgrid.f', 'psinv', 'loop', 'i1', '0', '155', '171'
If array with the name starting with 'fgg' is selected for array padding, then this array will not be padded, but instead the parameter fggx (which should be manually added after the array declaration) will be replaced with the padding factor. This is needed for special cases, when it is not possible to use padding directly. Example: common /cfggc/ fgg1(0) integer fgg1x parameter (fgg1x=0) Here if array fgg1 is selected in the tree, its dimension will not be changed, but instead the value of the parameter fgg1x will be replaced with the pad factor.