Quick Search:

View

Revision:
Expand:  
Changeset: MAIN:plunky:20110828101303

Diff

Diff from 1.21 to:

Annotations

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

Annotated File View

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