Table of Contents

Name

swighnflew - prepare a SUIF file for code generators

Synopsis

swighnflew [ options ] infile outfile

Description

The swighnflew program does some transformations to the SUIF file to make it use a lower-level subset of SUIF. This allows code generators to accept only a simpler subset of SUIF.

Options

-branches-compares-only
Make sure that comparison instructions only occur as operands of branch instructions. Any other comparisons are turned into conditional branches to code to set a variable.

-no-struct-return
Change function calls that return structures into function calls that return void and are instead passed the result structure location as the first argument.
-mark-struct-alignment
Annotate structure or array copying instructions and call sites that have structure or array parameters with the alignment information for the type.
-allow-fors
Don't complain about for loops. By default, this code issues an error message if it finds a tree_for node, because these nodes are expected to be dismantled before the back-end, for which swighnflew is intended to prepare the SUIF file.
-mark-varargs va_start_name
Mark all procedures that use an io_gen instruction with the name specified by va_start_name with a uses varargs annotation on the proc_sym. The intention is that va_start_name is a built-in function which is used by the va_start() macro defined in the target machine's <stdarg.h> and/or <varargs.h> headers. This allows procedures to be marked if they use either ANSI-style (<stdarg.h>) or K&R style (<varargs.h>) variable argument mechanisms. Some code generators need to know this when they start processing a procedure body, so it's convenient to put the annotation on here for such code generators.

See Also

porky(1) , oldsuif(1) , mexp(1) , mgen(1)

History

This program was written by Chris Wilson.


Table of Contents