Quick Search:

View

Revision:
Expand:  
Changeset: MAIN:ragge:20110814171522

Diff

Diff from 1.19 to:

Annotations

Annotate by Age | Author | Mixed | None
/fisheye/browse/pcc/pcc/cc/ccom/ccom.1

Annotated File View

ragge
1.19
1 .\"     $Id: ccom.1,v 1.19 2011/08/14 17:15:22 ragge Exp $
reed
1.9
2 .\"
ragge
1.1
3 .\" Copyright (c) 2007 Jeremy C. Reed <reed@reedmedia.net>
reed
1.7
4 .\" Permission to use, copy, modify, and/or distribute this software for any
5 .\" purpose with or without fee is hereby granted, provided that the above
ragge
1.1
6 .\" copyright notice and this permission notice appear in all copies.
reed
1.7
7 .\"
8 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR AND CONTRIBUTORS DISCLAIM
9 .\" ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
10 .\" WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL AUTHOR AND
11 .\" CONTRIBUTORS BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
12 .\" DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
13 .\" PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
14 .\" ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
ragge
1.1
15 .\" THIS SOFTWARE.
plunky
1.12
16 .\"
17 .Dd August 11, 2011
reed
1.7
18 .Dt CCOM 1
ragge
1.1
19 .Os
20 .Sh NAME
21 .Nm ccom
22 .Nd C compiler
23 .Sh SYNOPSIS
24 .Nm
plunky
1.14
25 .Op Fl gkps
plunky
1.16
26 .Op Fl f Ar features
plunky
1.12
27 .Op Fl W Ar warnings
ragge
1.1
28 .Op Fl X Ar flags
plunky
1.13
29 .Op Fl x Ar settings
reed
1.5
30 .Op Fl Z Ar flags
ragge
1.1
31 .Op infile
32 .Op outfile
33 .Sh DESCRIPTION
34 The
35 .Nm
36 utility provides a C compiler.
37 The frontend is usually
38 .Xr pcc 1 .
reed
1.7
39 It is
40 .Em not
41 intended to be run directly.
ragge
1.1
42 .Pp
43 .Nm
44 reads the C source from
45 .Ar infile
46 or standard input and writes the assembler source
47 to
48 .Ar outfile
49 or to standard output.
50 .Pp
51 The options are as follows:
52 .Bl -tag -width Ds
plunky
1.16
53 .It Fl f Ar feature
54 Enable language features.
55 Multiple
56 .Fl f
57 options can be given, the following features are supported:
58 .Bl -tag -width Ds
59 .It Sy signed-char
60 Treat char constants as signed values.
plunky
1.18
61 This is the default for AMD64, HPPA, i386, M16C, MIPS, PDP11 and VAX targets.
plunky
1.16
62 .It Sy unsigned-char
63 Treat char constants as unsigned values.
plunky
1.18
64 This is the default for PDP10, Nova and PowerPC targets.
plunky
1.16
65 .It Sy stack-protector
66 Enable stack smashing protection.
67 Currently the same as
68 .Sy stack-protector-all .
69 .It Sy stack-protector-all
70 Enable stack smashing protection for all functions.
71 .It Sy pack-struct Ns Oo = Ns Ar n Oc
72 Specify maximum alignment for structure members, similar to a #pragma pack
73 statement at the start of the file.
74 If no value is given, the default is 1.
75 .It Sy freestanding
76 Emit code for a freestanding environment.
77 Currently not implemented.
78 .El
ragge
1.1
79 .It Fl g
80 Enable debugging.
81 .\" built into binary, explain stabs?
gmcgarry
1.6
82 .It Fl k
83 Generate PIC code.
plunky
1.14
84 .It Fl p
85 Generate profiling code.
ragge
1.1
86 .It Fl s
87 Print statistics to standard error when complete.
88 This includes:
89 name table entries, name string size, permanent allocated memory,
90 temporary allocated memory, lost memory, argument list unions,
91 dimension/function unions, struct/union/enum blocks, inline node count,
92 inline control blocks, and permanent symtab entries.
93 .\" TODO: explain units for above?
reed
1.3
94 .It Fl v
95 Display version.
plunky
1.12
96 .It Fl W Ar warning
97 Do some basic checks and emit warnings about possible coding problems.
98 Multiple
99 .Fl W
plunky
1.15
100 options can be given, the following warnings are supported:
ragge
1.1
101 .Bl -tag -width Ds
gmcgarry
1.8
102 .It Sy error
plunky
1.12
103 Treat all warnings as errors.
reed
1.5
104 .It Sy implicit-function-declaration
plunky
1.12
105 (TODO) Require explicit prototypes for all called functions.
ragge
1.1
106 .It Sy implicit-int
plunky
1.12
107 (TODO) Warn when a function declaration lacks a type.
ragge
1.1
108 .It Sy missing-prototypes
plunky
1.12
109 Require explicit prototypes for all global function definitions.
110 .It Sy pointer-sign
111 Warn when pointer operations are done with mismatched signed and unsigned values.
112 .It Sy sign-compare
113 (TODO) Warn about comparisons between signed and unsigned values.
ragge
1.1
114 .It Sy strict-prototypes
plunky
1.12
115 (TODO) Require that function prototypes are strictly C99.
116 .It Sy shadow
117 Report when a local variable shadows something from a higher scope.
118 .It Sy truncate
119 Report when integer values may be implicitly truncated to fit a smaller type.
120 .It Sy unknown-pragmas
121 Report unhandled pragma statements.
122 .It Sy unreachable-code
123 Report statements that cannot be executed.
ragge
1.1
124 .El
125 .\"
reed
1.3
126 .It Fl X Ar flags
127 C specific debugging where
128 .Ar flags
ragge
1.1
129 is one or more of the following:
plunky
1.17
130 .Pp
131 .Bl -tag -compact -width Ds
ragge
1.1
132 .It Sy b
133 Building of parse trees
134 .It Sy d
reed
1.7
135 Declarations (using multiple
reed
1.3
136 .Sy d
137 flags gives more output)
reed
1.5
138 .It Sy e
139 Pass1 trees at exit
140 .It Sy i
141 Initializations
gmcgarry
1.6
142 .It Sy n
143 Memory allocations
144 .It Sy o
145 Turn off optimisations
146 .It Sy p
147 Prototypes
148 .It Sy s
149 Inlining
ragge
1.1
150 .It Sy t
151 Type conversions
152 .It Sy x
153 Target-specific flag, used in machine-dependent code
154 .El
155 .\"
plunky
1.13
156 .It Fl x Ar setting
157 Enable
158 .Ar setting
159 in the compiler.
160 Multiple
161 .Fl x
162 options can be given, the following settings are supported:
163 .Bl -tag -width Ds
164 .It Sy ccp
165 Apply sparse conditional constant propagation techniques for optimization.
166 Currently not implemented.
167 .It Sy dce
168 Do dead code elimination.
reed
1.5
169 .It Sy deljumps
170 Delete redundant jumps and dead code.
ragge
1.19
171 .It Sy gnu89
172 .It Sy gnu99
plunky
1.13
173 Use gcc semantics rather than C99 for some things.
174 Currently only inline.
plunky
1.11
175 .It Sy inline
176 Replace calls to functions marked with an inline specifier with a copy
177 of the actual function.
reed
1.5
178 .It Sy ssa
plunky
1.13
179 Convert statements into static single assignment form for optimization.
reed
1.7
180 Not yet finished.
reed
1.5
181 .It Sy tailcall
plunky
1.13
182 Enable optimization of tail-recursion functions.
reed
1.5
183 Currently not implemented.
184 .It Sy temps
plunky
1.13
185 Locate automatic variables into registers where possible, for further
reed
1.5
186 optimization by the register allocator.
187 .El
188 .\"
reed
1.3
189 .It Fl Z Ar flags
190 Code generator (pass2) specific debugging where
reed
1.7
191 .Ar flags
ragge
1.1
192 is one or more of the following:
plunky
1.17
193 .Pp
194 .Bl -tag -compact -width Ds
gmcgarry
1.6
195 .It Sy b
196 Basic block and SSA building
197 .It Sy c
198 Code printout
ragge
1.1
199 .It Sy e
200 Trees when entering pass2
reed
1.5
201 .It Sy f
202 Instruction matcher, may provide much output
gmcgarry
1.6
203 .It Sy n
204 Memory allocation
ragge
1.1
205 .It Sy o
206 Instruction generator
207 .It Sy r
208 Register allocator
reed
1.5
209 .It Sy s
210 Shape matching in instruction generator
ragge
1.1
211 .It Sy t
212 Type matching in instruction generator
213 .It Sy u
214 Sethi-Ullman computations
215 .It Sy x
reed
1.7
216 Target-specific flag, used in machine-dependent code
ragge
1.1
217 .El
reed
1.4
218 .El
ragge
1.1
219 .Sh SEE ALSO
220 .Xr as 1 ,
221 .Xr cpp 1 ,
222 .Xr pcc 1
223 .Sh HISTORY
224 The
225 .Nm
reed
1.7
226 compiler is based on the original Portable C Compiler by S. C. Johnson,
227 written in the late 70's.
ragge
1.1
228 Even though much of the compiler has been rewritten, some of the
229 basics still remain.
230 About 50% of the frontend code and 80% of the backend code has been
231 rewritten.
232 Most is written by Anders Magnusson, with the exception of
233 the data-flow analysis part and the SSA conversion code which is
234 written by Peter A Jonsson, and the Mips port that were written as
reed
1.7
235 part of a project by undergraduate students at Lulea University of
ragge
1.1
236 Technology.
reed
1.3
237 .Pp
238 This product includes software developed or owned by Caldera
239 International, Inc.
FishEye: Open Source License registered to PCC.
Atlassian FishEye, CVS analysis. (Version:1.6.3 Build:build-336 2008-11-04) - Administration - Page generated 2014-12-20 21:53 +0100