Quick Search:

View

Revision:
Expand:  
Changeset: MAIN:plunky:20110831180224

Diff

Diff from 1.23 to:

Annotations

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

Annotated File View

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