oldsuif - convert a SUIF file to the old SUIF format
oldsuif infile outfile
Except for our recent work, much of the code developed for SUIF uses the old SUIF libraries and binary format. Before running these passes, the oldsuif program must convert the SUIF files to the format used by the old libraries. As the current system has evolved, that task has become harder and harder, yet oldsuif still does a fairly good job translating into a format that is accepted by the old libraries while still preserving the information contained in the current binary files.
Some differences between the old and new SUIF systems go beyond the simple translations performed by oldsuif. One of the most significant differences is that old SUIF does not allow FOR loop index variables to be spilled. Any FOR loops with spilled index variables must be expanded into WHILE loops before running passes from the old system. That transformation is performed by running the porky program with the -noindex-spill option. Also, old SUIF cannot deal with sub-variables, so any uses of sub-variables must be expanded into expressions of their parent variables. This transformation is performed by running the porky program with the -no-sub-vars option. Thus, the porky program should always be run with the options -no-index-spill and -no-sub-vars immediately before the oldsuif program.
The SUIF MIPS code generator (mgen) also makes some assumptions that are not generally true for the current SUIF system. The swighnflew program modifies the SUIF code to satisfy the expectations of mgen, so you need to run swighnflew in conjunction with oldsuif before running mgen.
newsuif(1), porky(1), swighnflew(1)