Man page for mexp.1
Table of Contents


mexp - preprocessor for the MIPS code generator


mexp [ -debugN ] infile [ outfile ]
mexp -ddebug


The mexp program is an old-SUIF pass that must be run before the MIPS code generator. It has two functions. First, it massages the ucky ways that SUIF uses to describe some things (e.g. procedure calls returning structures) and make them more palatable to the code generator. Second, it encodes higher-level information (e.g. LOOP and IF structures) that the low-level schedulers would like to know into something that will not get lost during macro expansion or other backend phases. If the output file is not specified, mexp.sf is used.

The following items are massaged into MIPS-palatable SUIF:

Procedure calls returning structures
. The first parameter is explicitly assigned the return structure address.

The base/offset capability of paths is used

A "backend" annotation is added to first nomark mrk instruction

Floating-point "sne" instructions are converted to "seq" instruc

The "min" and "max" instructions are expanded


Describe the actions of each debug level.

Set the debug level to N, where N is between 0 and 9, inclusive. The default debug level is 0.


The procedures in the input SUIF file cannot contain FOR macros (AST nodes). The FOR loops should always be expanded before running mexp.


Mike Smith



Table of Contents