Define __builtin_va_list as a built-in type.
[suif.git] / html / man_swighnflew.1.html
blobe59075293f7dfb375a6335299fb5febfb6a80790
1 <!-- manual page source format generated by PolyglotMan v3.0.7, -->
2 <!-- available via anonymous ftp from ftp.cs.berkeley.edu:/ucb/people/phelps/tcltk/rman.tar.Z -->
4 <HTML>
5 <HEAD>
6 <TITLE>Man page for swighnflew.1</TITLE>
7 </HEAD>
8 <BODY bgcolor=white>
9 <A HREF="#toc">Table of Contents</A><P>
11 <H2><A NAME="sect0" HREF="#toc0">Name</A></H2>
13 <P>
14 swighnflew - prepare a SUIF file for code generators
16 <H2><A NAME="sect1" HREF="#toc1"><B>Synopsis</B></A></H2>
18 <P>
19 <B>swighnflew</B> [ <I>options</I> ] <I>infile</I> <I>outfile</I>
21 <H2><A NAME="sect2" HREF="#toc2"><B>Description</B></A></H2>
23 <P>
24 The <I>swighnflew</I> program does some transformations to the
25 SUIF file to make it use a lower-level subset of SUIF.
26 This allows code generators to accept only a simpler subset
27 of SUIF.
29 <H2><A NAME="sect3" HREF="#toc3"><B>Options</B></A></H2>
31 <P>
32 <B>-branches-compares-only</B><BR>
34 Make sure that comparison instructions only occur
35 as operands of branch instructions. Any other comparisons
36 are turned into conditional branches to
37 code to set a variable.
39 <DL>
41 <DT><B>-no-struct-return</B></DT></DT>
42 <DD>
43 Change function calls that return structures into
44 function calls that return void and are instead
45 passed the result structure location as the first
46 argument.
47 </DD>
49 <DT><B>-mark-struct-alignment</B></DT></DT>
50 <DD>
51 Annotate structure or array copying instructions
52 and call sites that have structure or array parameters
53 with the alignment information for the type.
54 </DD>
56 <DT><B>-allow-fors</B></DT></DT>
57 <DD>
58 Don't complain about for loops. By default, this
59 code issues an error message if it finds a tree_for
60 node, because these nodes are expected to be dismantled
61 before the back-end, for which <I>swighnflew</I>
62 is intended to prepare the SUIF file.
63 </DD>
65 <DT><B>-mark-varargs</B> <I>va</I><B>_</B><I>start</I><B>_</B><I>name</I></DT></DT>
66 <DD>
67 Mark all procedures that use an <I>io</I><B>_</B><I>gen</I> instruction
68 with the name specified by <I>va</I><B>_</B><I>start</I><B>_</B><I>name</I> with a
69 \x01uses varargs\x02 annotation on the proc_sym. The
70 intention is that <I>va</I><B>_</B><I>start</I><B>_</B><I>name</I> is a built-in function
71 which is used by the va_start() macro defined
72 in the target machine's &lt;stdarg.h&gt; and/or
73 &lt;varargs.h&gt; headers. This allows procedures to be
74 marked if they use either ANSI-style (&lt;stdarg.h&gt;)
75 or K&amp;R style (&lt;varargs.h&gt;) variable argument mechanisms.
76 Some code generators need to know this when
77 they start processing a procedure body, so it's
78 convenient to put the annotation on here for such
79 code generators.
80 </DD>
81 </DL>
83 <H2><A NAME="sect4" HREF="#toc4"><B>See</B> <B>Also</B></A></H2>
85 <P>
86 <A HREF="man_porky.1.html">porky(1)</A>
87 , <A HREF="man_oldsuif.1.html">oldsuif(1)</A>
88 , <A HREF="man_mexp.1.html">mexp(1)</A>
89 , <A HREF="man_mgen.1.html">mgen(1)</A>
92 <H2><A NAME="sect5" HREF="#toc5"><B>History</B></A></H2>
94 <P>
95 This program was written by Chris Wilson.
96 <P>
98 <HR><P>
99 <A NAME="toc"><B>Table of Contents</B></A><P>
100 <UL>
101 <LI><A NAME="toc0" HREF="#sect0">Name</A></LI>
102 <LI><A NAME="toc1" HREF="#sect1">Synopsis</A></LI>
103 <LI><A NAME="toc2" HREF="#sect2">Description</A></LI>
104 <LI><A NAME="toc3" HREF="#sect3">Options</A></LI>
105 <LI><A NAME="toc4" HREF="#sect4">See Also</A></LI>
106 <LI><A NAME="toc5" HREF="#sect5">History</A></LI>
107 </UL>
108 </BODY></HTML>