Quick Search:

View

Revision:
Expand:  
Changeset: MAIN:plunky:20110828103700

Diff

Diff from 1.22 to:

Annotations

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

Annotated File View

plunky
1.22
1 .\"     $Id: ccom.1,v 1.22 2011/08/28 10:37:00 plunky 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 .\"
plunky
1.22
17 .Dd August 28, 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.22
25 .Op Fl gkpsv
plunky
1.16
26 .Op Fl f Ar features
plunky
1.20
27 .Op Fl m Ar options
plunky
1.12
28 .Op Fl W Ar warnings
ragge
1.1
29 .Op Fl X Ar flags
plunky
1.13
30 .Op Fl x Ar settings
reed
1.5
31 .Op Fl Z Ar flags
ragge
1.1
32 .Op infile
33 .Op outfile
34 .Sh DESCRIPTION
35 The
36 .Nm
37 utility provides a C compiler.
38 The frontend is usually
39 .Xr pcc 1 .
reed
1.7
40 It is
41 .Em not
42 intended to be run directly.
ragge
1.1
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
plunky
1.22
80 Include debugging information in the output code for use by
81 symbolic and source-level debuggers.
82 Currently this uses the
83 .Sy stabs
84 format, encoding information in
85 .Em s Ns ymbol Em tab Ns le entrie Ns Em s.
gmcgarry
1.6
86 .It Fl k
87 Generate PIC code.
plunky
1.20
88 .It Fl m Ar option
89 Target-specific options, used in machine-dependent code.
90 Multiple
91 .Fl m
92 options can be given, the following options are supported:
93 .Bl -tag -width PowerPC
94 .It AMD64
95 .It ARM
96 .Sy little-endian Ns ,
97 .Sy big-endian Ns ,
98 .Sy fpe=fpa Ns ,
99 .Sy fpe=vpf Ns ,
100 .Sy soft-float Ns ,
101 .Sy arch=armv1 Ns ,
102 .Sy arch=armv2 Ns ,
103 .Sy arch=armv2a Ns ,
104 .Sy arch=armv3 Ns ,
105 .Sy arch=armv4 Ns ,
106 .Sy arch=armv4t Ns ,
107 .Sy arch=armv4tej Ns ,
108 .Sy arch=armv5 Ns ,
109 .Sy arch=armv5te Ns ,
110 .Sy arch=armv5tej Ns ,
111 .Sy arch=armv6 Ns ,
112 .Sy arch=armv6t2 Ns ,
113 .Sy arch=armv6kz Ns ,
114 .Sy arch=armv6k No \*(Am
115 .Sy arch=armv7 Ns .
116 .It HPPA
117 .It i386
118 .It M16C
119 .It MIPS
120 .Sy little-endian No \*(Am
121 .Sy big-endian Ns .
122 .It NOVA
123 .It PDP-10
124 .It PDP-11
125 .It PowerPC
126 .Sy little-endian Ns ,
127 .Sy big-endian Ns ,
128 .Sy soft-float No \*(Am
129 .Sy hard-float Ns .
130 .It Sparc64
131 .It VAX
132 .El
plunky
1.14
133 .It Fl p
134 Generate profiling code.
ragge
1.1
135 .It Fl s
136 Print statistics to standard error when complete.
137 This includes:
138 name table entries, name string size, permanent allocated memory,
139 temporary allocated memory, lost memory, argument list unions,
140 dimension/function unions, struct/union/enum blocks, inline node count,
141 inline control blocks, and permanent symtab entries.
142 .\" TODO: explain units for above?
reed
1.3
143 .It Fl v
144 Display version.
plunky
1.12
145 .It Fl W Ar warning
146 Do some basic checks and emit warnings about possible coding problems.
147 Multiple
148 .Fl W
plunky
1.15
149 options can be given, the following warnings are supported:
ragge
1.1
150 .Bl -tag -width Ds
gmcgarry
1.8
151 .It Sy error
plunky
1.12
152 Treat all warnings as errors.
reed
1.5
153 .It Sy implicit-function-declaration
plunky
1.12
154 (TODO) Require explicit prototypes for all called functions.
ragge
1.1
155 .It Sy implicit-int
plunky
1.12
156 (TODO) Warn when a function declaration lacks a type.
ragge
1.1
157 .It Sy missing-prototypes
plunky
1.12
158 Require explicit prototypes for all global function definitions.
159 .It Sy pointer-sign
160 Warn when pointer operations are done with mismatched signed and unsigned values.
161 .It Sy sign-compare
162 (TODO) Warn about comparisons between signed and unsigned values.
ragge
1.1
163 .It Sy strict-prototypes
plunky
1.12
164 (TODO) Require that function prototypes are strictly C99.
165 .It Sy shadow
166 Report when a local variable shadows something from a higher scope.
167 .It Sy truncate
168 Report when integer values may be implicitly truncated to fit a smaller type.
169 .It Sy unknown-pragmas
170 Report unhandled pragma statements.
171 .It Sy unreachable-code
172 Report statements that cannot be executed.
ragge
1.1
173 .El
174 .\"
reed
1.3
175 .It Fl X Ar flags
176 C specific debugging where
177 .Ar flags
ragge
1.1
178 is one or more of the following:
plunky
1.17
179 .Pp
180 .Bl -tag -compact -width Ds
ragge
1.1
181 .It Sy b
182 Building of parse trees
183 .It Sy d
reed
1.7
184 Declarations (using multiple
reed
1.3
185 .Sy d
186 flags gives more output)
reed
1.5
187 .It Sy e
188 Pass1 trees at exit
189 .It Sy i
190 Initializations
gmcgarry
1.6
191 .It Sy n
192 Memory allocations
193 .It Sy o
194 Turn off optimisations
195 .It Sy p
196 Prototypes
197 .It Sy s
198 Inlining
ragge
1.1
199 .It Sy t
200 Type conversions
201 .It Sy x
202 Target-specific flag, used in machine-dependent code
203 .El
204 .\"
plunky
1.13
205 .It Fl x Ar setting
206 Enable
207 .Ar setting
208 in the compiler.
209 Multiple
210 .Fl x
211 options can be given, the following settings are supported:
212 .Bl -tag -width Ds
213 .It Sy ccp
214 Apply sparse conditional constant propagation techniques for optimization.
215 Currently not implemented.
216 .It Sy dce
217 Do dead code elimination.
reed
1.5
218 .It Sy deljumps
219 Delete redundant jumps and dead code.
ragge
1.19
220 .It Sy gnu89
221 .It Sy gnu99
plunky
1.13
222 Use gcc semantics rather than C99 for some things.
223 Currently only inline.
plunky
1.11
224 .It Sy inline
225 Replace calls to functions marked with an inline specifier with a copy
226 of the actual function.
reed
1.5
227 .It Sy ssa
plunky
1.13
228 Convert statements into static single assignment form for optimization.
reed
1.7
229 Not yet finished.
reed
1.5
230 .It Sy tailcall
plunky
1.13
231 Enable optimization of tail-recursion functions.
reed
1.5
232 Currently not implemented.
233 .It Sy temps
plunky
1.13
234 Locate automatic variables into registers where possible, for further
reed
1.5
235 optimization by the register allocator.
236 .El
237 .\"
reed
1.3
238 .It Fl Z Ar flags
239 Code generator (pass2) specific debugging where
reed
1.7
240 .Ar flags
ragge
1.1
241 is one or more of the following:
plunky
1.17
242 .Pp
243 .Bl -tag -compact -width Ds
gmcgarry
1.6
244 .It Sy b
245 Basic block and SSA building
246 .It Sy c
247 Code printout
ragge
1.1
248 .It Sy e
249 Trees when entering pass2
reed
1.5
250 .It Sy f
251 Instruction matcher, may provide much output
gmcgarry
1.6
252 .It Sy n
253 Memory allocation
ragge
1.1
254 .It Sy o
255 Instruction generator
256 .It Sy r
257 Register allocator
reed
1.5
258 .It Sy s
259 Shape matching in instruction generator
ragge
1.1
260 .It Sy t
261 Type matching in instruction generator
262 .It Sy u
263 Sethi-Ullman computations
264 .It Sy x
reed
1.7
265 Target-specific flag, used in machine-dependent code
ragge
1.1
266 .El
reed
1.4
267 .El
ragge
1.1
268 .Sh SEE ALSO
269 .Xr as 1 ,
270 .Xr cpp 1 ,
271 .Xr pcc 1
272 .Sh HISTORY
273 The
274 .Nm
plunky
1.21
275 compiler is based on the original Portable C Compiler by
276 .An "S. C. Johnson" ,
reed
1.7
277 written in the late 70's.
plunky
1.21
278 Even though much of the compiler has been rewritten
279 .Pq about 50% of the frontend code and 80% of the backend ,
280 some of the basics still remain.
281 Most is written by
282 .An "Anders Magnusson" ,
283 with the exception of the data-flow analysis part and
284 the SSA conversion code which is written by
285 .An "Peter A Jonsson" ,
286 and the Mips port that were written as part of a project
287 by undergraduate students at Lulea University of Technology.
reed
1.3
288 .Pp
289 This product includes software developed or owned by Caldera
290 International, Inc.
FishEye: Open Source License registered to PCC.
Your maintenance has expired. You can renew your license at http://www.atlassian.com/fisheye/renew
Atlassian FishEye, CVS analysis. (Version:1.6.3 Build:build-336 2008-11-04) - Administration - Page generated 2014-11-01 10:11 +0100