Quick Search:

View

Revision:
Expand:  
Changeset: MAIN:plunky:20120322174726

Diff

Diff from 1.26 to:

Annotations

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

Annotated File View

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