Subversion Repositories Open64

[/] [trunk/] [osprey/] [driver/] [OPTIONS] - Blame information for rev 2694

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 marcel
%
2 1950 laijx
% Copyright 2005-2008 NVIDIA Corporation.  All rights reserved.
3 1411 laijx
%
4 1950 laijx
 
5
% -*- fundamental -*-
6
%
7 2322 dcoakley
%  Copyright (C) 2008-2009 Advanced Micro Devices, Inc.  All Rights Reserved.
8
%
9 861 hucheng
%  Copyright (C) 2006, 2007. QLogic Corporation. All Rights Reserved.
10 2 marcel
%
11 745 fengzhou
%  Copyright 2002, 2003, 2004, 2005, 2006 PathScale, Inc.  All Rights Reserved.
12
%
13 2 marcel
%  Copyright (C) 2000, 2001 Silicon Graphics, Inc.  All Rights Reserved.
14
%
15
%  This program is free software; you can redistribute it and/or modify it
16
%  under the terms of version 2 of the GNU General Public License as
17
%  published by the Free Software Foundation.
18
%
19
%  This program is distributed in the hope that it would be useful, but
20
%  WITHOUT ANY WARRANTY; without even the implied warranty of
21
%  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
22
%
23
%  Further, this software is distributed without any warranty that it is
24
%  free of the rightful claim of any third person regarding infringement
25
%  or the like.  Any license provided herein, whether implied or
26
%  otherwise, applies only to this software file.  Patent licenses, if
27
%  any, provided herein do not apply to combinations of this program with
28
%  other software, or any other product whatsoever.
29
%
30
%  You should have received a copy of the GNU General Public License along
31
%  with this program; if not, write the Free Software Foundation, Inc., 59
32
%  Temple Place - Suite 330, Boston MA 02111-1307, USA.
33
%
34
%  Contact information:  Silicon Graphics, Inc., 1600 Amphitheatre Pky,
35
%  Mountain View, CA 94043, or:
36
%
37
%  http://www.sgi.com
38
%
39
%  For further information regarding this notice, see:
40
%
41
%  http://oss.sgi.com/projects/GenInfo/NoticeExplan
42
%
43
%
44
 
45
% Lines beginning with % are comment lines,
46
% lines beginning with %%% denote new sections.
47
 
48 1950 laijx
% Each option has two lines.
49 2 marcel
% The first line contains:
50
% the option name,
51
% an action to be done upon reading the option,
52
% what languages accept it,
53
% what phases accept it,
54
% and what other options it implies.
55
% The second line contains the help message for that option.
56
 
57
% There must be no spaces in any of the fields except the last one,
58
% or you can have spaces in an action if you surround it with braces.
59
 
60
% There are several special syntax rules for option names that are used:
61
% Option names that start with I, e.g. I-foo, are internal names
62
% that the user cannot access.  Internal names are used for phase options
63
% (e.g. -pic2), and for implicit defaults like -D__sgi.
64
% A %s after an option name means to use the next string as an argument;
65 71 marcel
% a %- after an option name means to use the next string or '-' as an argument;
66 2 marcel
% a %d or %x after an option name means to use the next number as an argument;
67
% a %D after an option name means to use the next directory as an argument;
68
% the %{s,x,d,D} formats accept an optional space before the argument;
69
% if there is no number or directory for a corresponding %{x,d,D},
70
% then the option is not matched.
71
% A * in the middle of an argument means there can be an optional space here;
72
% a * at the end of the argument means the syntax is too complicated and a
73
% call to a hand-written routine called parse_<prefix>_option will be generated.
74 135 marcel
% A ? at the end of %D means the option will be ignored if the directory
75
% argument is missing (KEY).
76 2 marcel
 
77
% A special action is toggle(&<var>,<val>) which stores the value in the
78
% variable, and gives an error if the variable has already been set.
79
% This is useful for catching conflicts like -mips1 -mips2.
80 135 marcel
#ifdef KEY
81
% Toggle is also used in support of options from compiler.defaults.  When the
82 1950 laijx
% driver starts, <var> is initially set to UNDEFINED.  <var> is toggled to
83 135 marcel
% other values according to command line options.  When parsing
84
% compiler.defaults, toggle will silently drop an option if its <var> is not
85
% UNDEFINED, meaning it is already set by a command line option.  All options
86
% in compiler.defaults must have a <var>.
87
#endif
88 2 marcel
 
89
% The implies field should include the option name if that name is to be
90
% passed to phases.  The special word "self" for the implies field means
91
% to repeat the option name.
92
% Repeating a %{d,D,s} in the implies field shows the format to use
93
% when passing to phases, i.e. whether to have a blank space.
94
 
95
% A simple alias is recognized when you have an option that has
96
% no action, language=all, phases=none, and 1 implies option.
97
% This is directly translated to the implies option when processing.
98
 
99
% The file is first preprocessed by cpp to expand macros, and then sorted
100
% by option names.
101
 
102
% the letter keys for languages and phases must match what is in lang_defs.c
103
% ALL and NONE can be used for both languages and phases.
104
#define ALL A
105
#define NONE  N
106
% languages
107 1950 laijx
% use CPP not cpp to avoid conflict with -cpp option
108
#define CPP   p
109 2 marcel
#define cc  c
110
#define CC  C
111
#define Cc  cc,CC
112
#define f77 f
113
% f90 used in option name, so use F90 for define
114
#define F90 F
115
#define FTN f77,F90
116
#define as  a
117
#define LINK  Cc,FTN
118
% phases
119 1950 laijx
% CPP is a phase as well as a language, but the definition is the same
120 2 marcel
#define cfe C
121
#define ffe F
122 1950 laijx
#define anyfe f
123 2 marcel
#define ipl i
124
#define be  b
125
#define as  a
126
#define ld  l
127
#define ipap  j
128
#define pwrc  K
129
% pfa used in option name, so use PFA for define
130
#define PFA K
131
#define mpc M
132
% GRP: All the pieces that swallow regular group options
133
#define GRP ffe,b,i
134 1950 laijx
#define CMP anyfe,ipl,be
135
% ALLX: ALL except pca & pfa which do not accept the usual compilation args
136
#define ALLX  CPP,CMP,ld
137 2 marcel
 
138 1950 laijx
% <option name> <action> <languages> <phases> <implies>
139 2 marcel
% <help message>
140 1950 laijx
-help {print_help = TRUE;}  ALL NONE  ""
141 2 marcel
  "print list of possible options"
142 1950 laijx
-h  {print_help = TRUE;}  ALL NONE  ""
143
  ""
144 2 marcel
-realO  ;   ALL NONE  ""
145
  "override the turning down of optimization levels"
146
-help:%s  save_name(&help_pattern,optargs);   ALL NONE  ""
147
  "print list of possible options that contain given string"
148
%
149 71 marcel
 
150 1411 laijx
-show {show_flag = TRUE; }  ALL GRP self
151 2 marcel
  "show phases as they are being invoked"
152
-show1  {show_flag = TRUE; }  ALL NONE  ""
153
  ""
154
-show0  {show_flag = TRUE; execute_flag = FALSE;} ALL NONE  ""
155 1950 laijx
  "show what phases would be called, but do not invoke anything"
156 2 marcel
-showt  {time_flag = TRUE; }  ALL NONE  ""
157
  "show time taken by each phase"
158
-Q  {quiet_flag = FALSE; }  ALL NONE  ""
159
  "suppress timing information (g++) "
160 83 marcel
-version {show_version++; show_copyright = TRUE; execute_flag = FALSE;} ALL NONE  ""
161 2 marcel
  "Show the version of the compiler being used"
162 1483 ributzka
%-copyright {show_copyright = TRUE; execute_flag = FALSE;} ALL  NONE  ""
163
% "Show the copyright for the compiler being used"
164 71 marcel
% Fix for bug 492
165
-dumpversion {dump_version = TRUE; execute_flag = FALSE;} ALL NONE  ""
166
  "Show the version of the compiler being used, and nothing else"
167 2 marcel
% -showd turns on internal driver debugging
168
-showd  {show_flag = debug = TRUE; execute_flag = FALSE;} ALL NONE ""
169
  ""
170 135 marcel
-show-defaults  {show_defaults = TRUE; execute_flag = FALSE;} ALL NONE  ""
171
  "Show the default compiler options being used"
172 2 marcel
% gcc has -v show version as well as phases, so take that meaning
173 1950 laijx
-v  {show_flag = TRUE; show_version++;} ALL CPP,as,ld self "-show"
174 2 marcel
  "show phases and version as they are being invoked"
175 1950 laijx
-fullwarn toggle(&msglevel,2);    FTN  CPP  "-m2"
176 2 marcel
  "give more warnings, especially about missing prototypes"
177 1950 laijx
-w  toggle(&msglevel,0);    ALL CPP,cfe,as,PFA  self "-m0"
178 2 marcel
  ""
179
-w2     ;   f77 ffe self
180
  "warnings count as errors"
181
-w3     ;   f77 ffe self
182
  "supress warnings but exit with error status"
183
-w66      ;   f ffe self
184
  "turn off F66 incompatibility warnings"
185
-66     ;   f ffe self
186
  "issue errors when non-F66 feature used"
187
-woff*all toggle(&msglevel,0);    ALL NONE  "-w -m0"
188
  "turn off all warnings"
189
 
190
-woff*options   ;   ALL NONE  ""
191
  "turn off warnings about options"
192
-woff%d     ;   FTN ffe,be  "-woff%d"
193
  "turn off named warnings"
194
 
195
% -V is an svr4 option, currently ignored
196 1950 laijx
-V  {show_version++; show_copyright=TRUE; execute_flag=FALSE;} ALL NONE ""
197
  "Show the version of the compiler being used"
198 2 marcel
-V%d  {warn_ignored("-V <version>");} cc  ALLX  ""
199
  ""
200
% last_phase gives the last phase to run, phase names from lang_defs.h
201
% If the user gives conflicting last phases, e.g. -c -P,
202
% then we use the earliest phase given.
203
-c  last_phase=(((ipa==TRUE)&&(shared==RELOCATABLE))?P_any_ld:earliest_phase(P_any_as,last_phase));  ALL  NONE  ""
204
  "produce a .o and stop"
205
-r  toggle(&shared,RELOCATABLE);last_phase=P_any_ld;  ALL  ld self
206
  "produce a relocatable .o and stop"
207
-S  last_phase=earliest_phase(P_be,last_phase);  Cc,FTN NONE  ""
208
  "produce a .s and stop"
209
-fe last_phase=earliest_phase(P_any_fe,last_phase);  Cc,FTN NONE  ""
210
  "stop after the front end is run"
211
-F  dash_F_option();   f77  NONE  ""
212
  "stop after RATFOR (f77 only)"
213
% just parse and then stop
214
-parse  last_phase=earliest_phase(P_any_fe,last_phase);  Cc cfe self
215
  ""
216 1950 laijx
-I%D    ;   ALL CPP "-I%D -include=%D"
217 2 marcel
  "add following directory to the include search path list"
218 1950 laijx
-iquote%D ;   ALL CPP "-iquote=%D"
219 957 rhundt
  "add following directory to the include search path list"
220 83 marcel
-x%-    set_explicit_lang(option_name,optargs);   ALL NONE  ""
221
  "Specify explicit language for input files"
222 2 marcel
 
223
I-include=%D  ;   FTN     ffe,PFA     "-include=%D"
224
  ""
225 135 marcel
% KEY Make -I to always mean an include search path.  -I without a
226
% directory argument does nothing.
227 83 marcel
%-I ;   ALL NONE  "-nostdinc"
228
% ""
229 135 marcel
%I-ivpad  ;   LINK  ld  "-ivpad"
230
% "inter-variable padding of common blocks"
231 1950 laijx
-nostdinc nostdinc=TRUE;    ALL CPP self
232 2 marcel
  "no predefined include search path list"
233 1950 laijx
-stdinc   nostdinc=FALSE;   ALL CPP ""
234 71 marcel
  "predefined include search path list"
235 1950 laijx
-nostdinc++ nostdinc=TRUE;    CC,CPP  CPP self
236 71 marcel
  "Do not search for header files in the standard directories specific to C++"
237 83 marcel
-nostdlib ; LINK  ld  self
238
  "Do not use standard system startup files or libraries when linking"
239 1950 laijx
-ffast-stdlib ; A anyfe,ld  "-OPT:fast_stdlib=on"
240 135 marcel
  "Use faster versions of some standard library functions, when available"
241 1950 laijx
-fno-fast-stdlib  ; A anyfe,ld  "-OPT:fast_stdlib=off"
242 135 marcel
  "Do not use faster versions of standard library functions"
243 2322 dcoakley
-nolibopen64rt  ; LINK  ld  ""
244
  "Do not link with libopen64rt"
245 135 marcel
%I-split_common ;   LINK  ld  "-split_common"
246
% "check split COMMON for inconsistencies and fix them"
247 2 marcel
 
248
-LIST:%s  ;   ALL be,ipl  "-LIST:%s"
249
  "option group to control listing file and contents"
250
-LD_%s    ;   ALL ld  "-LD_%s"
251
  ""
252
-L%D  add_library_dir(optargs);   LINK  ld  "-L%D"
253
  "add following directory to the library search path list"
254
-L    ;   LINK  ld  self
255
  ""
256 83 marcel
-s    ;   LINK  ld  self
257
  "Strip symbol table and relocation information"
258 2 marcel
 
259 2694 shenruifen
#ifdef SL
260
-G8     toggle(&gnum,optargd);    ALL ffe,be  "-G8"
261
  ""
262
-Gspace8  ;   ALL be  "-TENV:Gspace=8"
263
  ""
264
#else
265 2 marcel
-G%d  toggle(&gnum,optargd);    ALL ffe,be  "-G%d"
266
  ""
267
-Gspace%d ;   ALL be  "-TENV:Gspace=%d"
268
  ""
269 2694 shenruifen
#endif
270 2 marcel
% encourage people to replace -K with -keep
271
-keep keep_flag=TRUE;   ALL ipap  self
272
  "keep intermediate files"
273
-save-temps keep_flag=TRUE; ALL NONE  ""
274
  ""
275 83 marcel
-pass-exit-codes  pass_exit_codes=TRUE; ALL NONE  ""
276
  "Return the highest error code encountered by any phase"
277 2 marcel
% there are three shared modes:  non, dso, call; call-shared is the default.
278
% -KPIC can mean either dso or call, so it is only used to say "not non-shared".
279 1950 laijx
% on linux, use g++ driver so do not need init and fini
280 2 marcel
#define PIC_FLAGS_1    "-TENV:PIC -pic2"
281
#define PIC_FLAGS_2    "-TENV:PIC -pic2 -shared"
282
I-cpp_pic ;   ALL NONE  "-D_PIC -D__DSO__"
283
  ""
284 83 marcel
% KEY support only -fpic, -fno-pic, -static, -shared, -pic1
285 180 syang
-call_shared  toggle(&shared,CALL_SHARED);  ALL NONE  PIC_FLAGS_1
286
  "call-shared PIC code"
287 83 marcel
%-shared  toggle(&shared,DSO_SHARED); ALL l PIC_FLAGS_2
288
% "dso-shared PIC code"
289
-shared   toggle(&shared,DSO_SHARED); ALL l -TENV:PIC -shared
290 2 marcel
  "dso-shared PIC code"
291 83 marcel
%-non_shared  toggle(&shared,NON_SHARED);   ALL NONE  ""
292 1950 laijx
% "compile non-shared (no DSOs)"
293 2 marcel
-pic1   ;   ALL NONE  -TENV:CPIC
294
  ""
295 180 syang
-pic2   ;   ALL NONE  -TENV:PIC
296
  ""
297 2 marcel
 
298
% This option turns on everything of interest to SPEC:
299
-Ofast  Process_Ofast("");    ALL NONE  ""
300
  "default fast option configuration"
301
 
302 71 marcel
-fb_phase=%s Process_fb_phase(optargs);        ALL     N       ""
303 135 marcel
        ""
304 71 marcel
 
305 135 marcel
-fb-phase=%s Process_fb_phase(optargs);        ALL     N       ""
306
        "Option needed to tell compile feedback phase"
307
 
308 2 marcel
-fbgen  Gen_feedback=TRUE;    ALL N ""
309 71 marcel
  ""
310 2 marcel
 
311
-fbuse%s Process_fbuse(optargs);    ALL N ""
312 71 marcel
  ""
313 2 marcel
 
314
-fbexe%s Process_fbexe(optargs);        ALL     N       ""
315 71 marcel
  ""
316 2 marcel
 
317
-fb_xdir%D Process_fb_xdir(optargs);    ALL N ""
318 71 marcel
  ""
319 2 marcel
 
320
-fb_cdir%D Process_fb_cdir(optargs);    ALL N ""
321 71 marcel
  ""
322 2 marcel
 
323
-fb_create%s Process_fb_create(optargs);        ALL     N       ""
324 135 marcel
        ""
325
 
326
-fb-create%s Process_fb_create(optargs);        ALL     N       ""
327 2 marcel
        "Option needed for SPEC feedback file generation"
328
 
329
-fb_opt%s Process_fb_opt(optargs);      ALL     N       ""
330 135 marcel
        ""
331
 
332
-fb-opt%s Process_fb_opt(optargs);      ALL     N       ""
333 2 marcel
        "Option needed for using SPEC feedback files"
334
 
335 71 marcel
-fb_type=%s Process_fb_type(optargs);   ALL    N     ""
336 135 marcel
        ""
337 71 marcel
 
338 135 marcel
-fb-type=%s Process_fb_type(optargs);   ALL    N     ""
339
        "Option need for the type of profiles"
340
 
341 1950 laijx
-frandom-seed%s ; ALL N "-frandom-seed=%s"
342
  "specify random seed (string) for internal random number generator"
343
-fivopts  ; ALL NONE  ""
344
  "Perform induction variable optimizations (for options compatibility only, performed by default by Open64)"
345
-fno-ivopts ; ALL NONE  ""
346
  "Do not perform induction variable optimizations (for options compatibility only, ignored by Open64)"
347 1489 carrot
-frename-registers  ;           ALL     NONE    ""
348
             "for options compatibility only, ignored by Open64"
349 1114 rhundt
-ftree-vectorize ;    ALL NONE  ""
350
       "Perform 'tree' specific vectorization; for options compatibility only, ignored by Open64"
351
-fno-tree-vectorize ;   ALL NONE  ""
352
       "Don't perform 'tree' specific vectorization; for options compatibility only, ignored by Open64"
353 1192 rhundt
-directives-only ; ALL NONE ""
354
             "ignored by open64"
355 957 rhundt
 
356 2 marcel
% Basic option groups:
357
% See opt_actions.c::Process_Ofast if you change the -OPT: item.
358
-OPT:%s   Process_Opt_Group(optargs);   ALL CMP,ipap "-OPT:%s"
359
  "option group to control optimization"
360 2322 dcoakley
-OPT:unroll_level=n ;   ALL be  ""
361
  "where n=1,2 controls unrolling, default=1, aggressive=2"
362
-OPT:keep_ext=on,off ;  ALL be  ""
363
  "where default is off, on means external syms are preserved"
364 2 marcel
-DEBUG:%s ;   ALL GRP "-DEBUG:%s"
365
  "option group to debugging options"
366 83 marcel
-TENV:%s  Process_Tenv_Group(optargs);  ALL GRP "-TENV:%s"
367 2 marcel
  "option group to control target environment"
368
-TARG:%s  Process_Targ_Group(optargs);  ALL GRP "-TARG:%s"
369
  "option group to control compilation target"
370
-SWP:%s   ;   ALL be  "-SWP:%s"
371 71 marcel
  ""
372 2 marcel
-GRA:%s   ;   ALL be  "-GRA:%s"
373
  "option group to control global register allocation"
374 2322 dcoakley
#ifdef X8664
375
-GRA:unspill=on,off ;   ALL be  ""
376
  "when on enables optimal GRA/LRA boundary condition allocations"
377
#endif
378 2 marcel
-GCM:%s   {warning("-GCM group no longer supported");}  N NONE  ""
379
  ""
380
-CG:%s    ;   ALL be  "-CG:%s"
381
  "option group to control code generation"
382 2322 dcoakley
-CG:unroll_level=n ;    ALL be  ""
383
  "where n=0,1,2 controls unrolling, none=0, default=1, aggressive=2"
384
-CG:unroll_fb_req=on,off ;    ALL be  ""
385
  "when on with FDO disables cold code layout for unrolled loops"
386
#ifdef X8664
387
-CG:cmp_peep=on,off ;   ALL be  ""
388
  "when on load-exec opts include compare instructions"
389
-CG:compute_to=on,off ;   ALL be  ""
390
  "when on, enables SSE based scheduling/local code motion optimizations"
391
#endif
392 2 marcel
-PHASE:%s ;   ALL be,ipl  "-PHASE:%s"
393
  ""
394
-WOPT:%s  ;   ALL be,ipl  "-WOPT:%s"
395
  "option group internal-use WOPT options"
396 745 fengzhou
-LNO:%s   ;   ALL be  "-LNO:%s"
397 2 marcel
  "option group to control loop nest optimization"
398 2322 dcoakley
-HP:%s    Process_Hugepage_Group(optargs);  ALL be  ""
399
  "option group to specify huge page usage, e.g., -HP:bdt=2m:heap=2m,limit=150"
400
-HP   Process_Hugepage_Default();   ALL be  ""
401
  "equivalent to -HP:heap=2m"
402
-HUGEPAGE:%s  Process_Hugepage_Group(optargs);  ALL be  ""
403
  "equivalent to -HP:"
404
-HUGEPAGE Process_Hugepage_Default();   ALL be  ""
405
  "equivalent to -HP"
406
 
407 135 marcel
#ifndef KEY
408 2 marcel
-MP:%s    Process_Mp_Group(optargs);    ALL NONE  ""
409 71 marcel
  ""
410 135 marcel
#endif
411
-VHO:%s   ;   ALL ffe,be,ipl  "-VHO:%s"
412 2 marcel
  "option group to control vho lowering"
413
 
414
% C and Fortran listing related options:
415
-CLIST:%s ;   cc  be  "-PHASE:clist -CLIST:%s"
416
  "option group to control C source listing of compiler intermediate"
417
-FLIST:%s ;   FTN be  "-PHASE:flist -FLIST:%s"
418
  "option group to control Fortran source listing of compiler intermediate"
419
-clist  ;   cc  be  "-PHASE:clist -CLIST:=ON"
420
  ""
421
-flist  ;   FTN be  "-PHASE:flist -FLIST:=ON"
422
  ""
423
-mplist   ;   FTN,cc  be  "-mplist"
424
  ""
425
-PURPLE:%s  ;   f77 be  "-PHASE:purple -PURPLE:%s"
426
  "option group to control problem isolation slicing tool"
427
-PROMP:next_id=%d ;   FTN,Cc  be  "-PROMP:next_id=%d"
428 71 marcel
  ""
429 2 marcel
-PROMP:%s ;   FTN,Cc  be  "-PHASE:prompf -PROMP:%s"
430 71 marcel
  ""
431 2 marcel
 
432
-IPA:%s toggle(&ipa,TRUE);    ALL ipl,ipap  "-IPA:%s"
433
  "option group to control interprocedural optimizations"
434
-LANG:std toggle(&standard_cplusplus,TRUE);  CC    GRP  "-LANG:std"
435
        "Use ISO/ANSI standard-conforming C++ language and library"
436
-LANG:%s  ;   LINK  GRP "-LANG:%s"
437
  "option group to control language features"
438
-INTERNAL:%s  ;   LINK  GRP,ipap  "-INTERNAL:%s"
439
  "option group to control features while testing"
440
-DEFAULT:%s Process_Default_Group(optargs);   ALL N ""
441 71 marcel
  ""
442 1950 laijx
-fverify-tree ;           CC     anyfe  "-fverify-tree"
443 2 marcel
        "Run verification routine before tree-to-whirl conversion"
444
% Linker Option Group(s)
445
-LMSG:%s  ;   ALL ld  "-LMSG:%s"
446
  "option group to control error/warning messages in ld"
447
 
448 1950 laijx
-FE:%s    ;   ALL ffe "-FE:%s"
449 2 marcel
  ""
450
I-init%s    ;   CC  ld  "-init %s"
451
  ""
452
I-fini%s    ;   CC  ld  "-fini %s"
453
  ""
454
% -C can have two different meanings, so escape to hand-code
455
-C*   ;   ALL NONE  ""
456 83 marcel
  "C/C++: keep C comments after cpp; Fortran: runtime subscript checking"
457 71 marcel
-ffortran-bounds-check  ; FTN ffe "-DEBUG:subscript_check"
458
  "check bounds"
459 1411 laijx
-ffortran2003 ; FTN ffe self
460
  "Fortran 2003 behavior for BOZ constants in intrinsics"
461 2 marcel
% we can safely assume that P_cpp will be the earliest phase
462
% P_any_cpp is the generic union of all cpp phases
463 71 marcel
-E  last_phase=P_any_cpp;   ALL NONE  self
464
  "run cpp and send result to standard output"
465 1950 laijx
-P    ;   ALL CPP self
466 2 marcel
  ""
467 1950 laijx
-M  last_phase=P_any_cpp;   ALL CPP self
468 2 marcel
  "run cpp and print list of make dependencies"
469 1950 laijx
-MDupdate%s ;   ALL CPP,ld  "-MDupdate %s"
470 2 marcel
  "update the following file with make dependencies"
471 1950 laijx
-MDtarget%s ;   ALL CPP "-MDtarget %s"
472 2 marcel
  "use the following as the target for make dependencies"
473
-MDignore%s ;   ALL ld  "-MDignore %s"
474
  ""
475 1950 laijx
-fdollars-in-identifiers   ;    ALL     CPP     self
476 1489 carrot
        "Accept `$' in identifiers"
477 2 marcel
% first_phase is P_cpp by default, so set it to anything different
478 1950 laijx
-nocpp nocpp_flag=TRUE;first_phase=P_any_fe;  FTN anyfe self
479
  "do not do cpp processing"
480
-cpp  toggle(&use_ftpp,0);first_phase=P_any_cpp;  ALL NONE  ""
481 2 marcel
  ""
482
% -o is now handled elsewhere because of complications introduced by cord
483 71 marcel
-o%-  save_name(&outfile,optargs);check_output_name(optargs);cancel_saved_arg(2);  ALL NONE ""
484
  "put output in following file name rather than a.out"
485 83 marcel
-fonetrip ;   f77 ffe "-1"
486
  "One trip DO loops"
487 2 marcel
-onetrip  ;   f77 ffe "-1"
488
  "One trip DO loops"
489
-1    ;   f77 ffe self
490
  "One trip DO loops"
491
-p  ;   ALL ld  self "-TENV:call_mcount"
492
  ""
493 71 marcel
-pg ;   ALL ld  self "-lm" "-TENV:call_mcount"
494 2 marcel
  ""
495 745 fengzhou
-profile  ; ALL ld  self "-lm" "-TENV:call_mcount"
496
  ""
497 2111 shenruifen
#ifdef SL
498
% sl specific flags
499
-march=%s ;  ALL     as      ""
500
        "Set CPU type"
501
-n32    toggle(&abi,ABI_N32);   ALL     PFA     "-n32" "-TARG:abi=n32"
502
        "Compile for 32-bit ABI"
503
-mips4  toggle(&isa,ISA_MIPS4);         ALL     as      "-mips4" "-TARG:isa=mips4"
504
        "compile for mips4 instruction set"
505 2694 shenruifen
-sl1_dsp   toggle(&use_sl1_dsp,TRUE);   ALL  NONE "-CG:dsp_thread=on -TARG:processor=sl1_dsp -march=sl1"
506 2111 shenruifen
  ""
507 2694 shenruifen
-sl1_pcore toggle(&use_sl1_pcore,TRUE); ALL  NONE   "-TARG:processor=sl1_pcore -march=sl1"
508 2111 shenruifen
  ""
509 2694 shenruifen
-sl5       toggle(&use_sl5,TRUE); ALL  NONE   "-TARG:processor=sl5 -march=sl5"
510
  ""
511 2111 shenruifen
-mlong-long      Long_Long_Support=TRUE;   Cc,cpp f self
512
  "Supporting 64bit Long Long for SL"
513
-msoft-float    Float_Point_Support=TRUE;  Cc,cpp f self
514
  "Supporting Float Point Emulation for SL"
515
-ldscript ldscript_file=TRUE; ALL ld  ""
516
  "Using appointed link file"
517
#endif
518 1161 laijx
#ifdef X8664 /* Bug #381, here the MACRO is X8664/IA64, no 'TARG_' prefix */
519 83 marcel
-m32  toggle(&abi,ABI_N32); ALL be  "-TARG:abi=n32"
520
        "Compile for 32-bit ABI"
521
-m64  toggle(&abi,ABI_64);  ALL be  "-TARG:abi=n64"
522
  "Compile for 64-bit ABI"
523 1161 laijx
#endif
524 1950 laijx
#ifdef TARG_NVISA
525
-m32    toggle(&abi,ABI_N32);   ALL     be      "-TARG:abi=n32"
526
        "Compile for 32-bit ABI"
527
-m64    toggle(&abi,ABI_64);    ALL     be      "-TARG:abi=n64"
528
        "Compile for 64-bit ABI"
529
-w64  toggle(&abi,ABI_W64); ALL NONE  "-TARG:abi=w64"
530
  "Compile for Windows 64-bit ABI"
531
#endif
532 135 marcel
#ifdef KEY /* Bug 4210 */
533
-module%s Process_module(optargs);  F90 NONE  ""
534
  "Directory in which to create .mod file"
535
#endif /* KEY Bug 4210 */
536 2 marcel
 
537
% KRDEFS are used by K&R compiles; ONANSI by any non-strict-ansi compile
538
#define KRDEFS "-Dunix -Dsgi -DLANGUAGE_C"
539
#define KRDEFS_linux "-Dunix -Dlinux"
540
#define ANSI  "-Xansi -D__STRICT_ANSI__"
541
% One kludge that we do is to add -DMIPSE{L,B} by hand in the driver,
542
% by checking if ansi==KR_ANSI and then checking the endian value.
543
 
544
I-cpp_nonansi   ;   ALL NONE  "-D_LONGLONG"
545
  ""
546
I-cpp_extensions  ;   ALL NONE  "-D__EXTENSIONS__ -D__MATH_HAS_NO_SIDE_EFFECTS"
547
  ""
548 1950 laijx
% KEY: Do not list FTN here because while FTN fe and FTN cpp take -ansi, gcc for
549 745 fengzhou
%      FTN preprocessing does not.  Handle FTN -ansi when calling individual
550
%      phases.
551 1950 laijx
-ansi toggle(&ansi,STRICT_ANSI);  cc  CPP,anyfe self ANSI
552 135 marcel
  "strict ansi and standard intrinsics only"
553 1950 laijx
-std=c89    ;   Cc,CPP  CPP,cfe self
554 83 marcel
  "Support ISO C from 1990"
555 1950 laijx
-std=iso9899:1990 ;   Cc,CPP  CPP,cfe self
556 83 marcel
  "Support ISO C from 1990"
557 1950 laijx
-std=iso9899:199409 ;   Cc,CPP  CPP,cfe self
558 83 marcel
  "Support ISO C from 1990, with 1994 amendments"
559 1950 laijx
-std=c99    ;   Cc,CPP  CPP,cfe self
560 83 marcel
  "Support revised ISO C, from 1999"
561 1950 laijx
-std=c9x    ;   Cc,CPP  CPP,cfe self
562 83 marcel
  "Support revised ISO C, from 1999"
563 1950 laijx
-std=iso9899:1999 ;   Cc,CPP  CPP,cfe self
564 83 marcel
  "Support revised ISO C, from 1999"
565 1950 laijx
-std=iso9899:199x ;   Cc,CPP  CPP,cfe self
566 83 marcel
  "Support revised ISO C, from 1999"
567 1950 laijx
-std=gnu89    ;   Cc,CPP  CPP,cfe self
568 83 marcel
  "Support ISO C from 1990, with GNU extensions"
569 1950 laijx
-std=gnu99    ;   Cc,CPP  CPP,cfe self
570 83 marcel
  "Support ISO C from 1999, with GNU extensions"
571 1950 laijx
-std=gnu9x    ;   Cc,CPP  CPP,cfe self
572 83 marcel
  "Support ISO C from 1999, with GNU extensions"
573 1950 laijx
-std=c++98    ;   CC,CPP  CPP,cfe self
574 135 marcel
  "Support 1998 ISO C++ standard plus amendments"
575 1950 laijx
-std=gnu++98    ;   CC,CPP  CPP,cfe self
576
  "The same as '-std=c++98' plus GNU extensions.  This is the default for C++ code."
577 2 marcel
% these options are only set for cc:
578
I-Xansi                 ;       cc      mpc     self
579
        ""
580 1950 laijx
I-D_LANGUAGE_C    ; cc  CPP self
581 2 marcel
  ""
582 1950 laijx
I-D__EXTENSIONS__   ; CC,cc CPP self
583 2 marcel
  ""
584 1950 laijx
I-D__GNUC__ ; CC,cc CPP self
585 71 marcel
  ""
586 2 marcel
% these options are only set for CC:
587
#define CXX_DEFS "-D_LANGUAGE_C_PLUS_PLUS=1 -D_MODERN_C"
588
#define CXX_DEFS_LINUX "-D_LANGUAGE_C_PLUS_PLUS=1"
589 1950 laijx
% the -Xcpluscomm is needed in case we use CPP
590
I-D_LANGUAGE_C_PLUS_PLUS=1 ;  CC  CPP self
591 2 marcel
  ""
592
% these options are only set for as:
593
#define AS_DEFS "-D_LANGUAGE_ASSEMBLY -DLANGUAGE_ASSEMBLY"
594 1950 laijx
I-cpp_assembly    ;   as  CPP AS_DEFS
595 2 marcel
  ""
596 1950 laijx
I-D_LANGUAGE_ASSEMBLY ;   as  CPP self
597 2 marcel
  ""
598
% these options are only set for fortran:
599
% these options are only set for fortran:
600
#define FTN_DEFS "-D_LANGUAGE_FORTRAN -DLANGUAGE_FORTRAN"
601
#define FTN77_DEFS "-D_LANGUAGE_FORTRAN77 -DLANGUAGE_FORTRAN77"
602
#define FTN90_DEFS "-D_LANGUAGE_FORTRAN90 -DLANGUAGE_FORTRAN90"
603 1950 laijx
I-cpp_fortran   ;   FTN CPP FTN_DEFS
604 2 marcel
  ""
605 1950 laijx
I-cpp_fortran90   ;   F90 CPP FTN90_DEFS
606 2 marcel
  ""
607 1950 laijx
I-cpp_fortran77   ;   f77 CPP FTN77_DEFS
608 2 marcel
  ""
609 1950 laijx
I-D_LANGUAGE_FORTRAN  ;   FTN CPP self
610 2 marcel
  ""
611
% f77 and as use cpp, but require k&r processing for things like # comments
612 1950 laijx
-A%s      ;   ALL CPP "-A%s"
613 2 marcel
  "add following cpp assertions"
614 1950 laijx
-D%s      ;   ALL CPP "-D%s"
615 2 marcel
  "add following macro define"
616
% -U can have two different meanings, so escape to hand-code
617
-U*   ;   ALL NONE  ""
618
  ""
619 1950 laijx
-U%s      ;   ALL CPP "-U%s"
620 2 marcel
  "undefine the following macro"
621
-l%s      ;   LINK  ld  "-l%s"
622
  "-l<arg> adds library lib<arg> to link list"
623
-WB,%s      ;   LINK  ld  "-WB,%s"
624
  "-WB,<arg> passes <arg> to the back-end via ipacom"
625 71 marcel
%the next 2 entries are allegedly handled by the W* entry -- gbl
626
%Bug#551
627 1078 laijx
%-Wa,%s     ;   LINK  as  "-Wa,%s"
628
% "pass comma-separated opts to assembler as individual opts"
629 2 marcel
-Wl,%s      ;   LINK  ld  "-Wl,%s"
630 71 marcel
  "pass comma-separated opts to linker as individual opts"
631 1950 laijx
-Wp,%s      ;   ALL CPP "-Wp,%s"
632 71 marcel
  "pass comma-separated opts to preprocessor as individual opts"
633 2 marcel
-W*     ;   ALL NONE  ""
634
  "-W<phase>,<arg> sends arg to phase {p=cpp,f=fe,b=be,a=as,l=ld}"
635
-Y%s  change_phase_path(optargs);   ALL ipap  "-Y%s"
636 71 marcel
  "-Y<phase>,<path> uses path to find phase {p=cpp,f=fe,b=be,a=as,l=ld,i=inline,I=include,S=startup,L=libraries}"
637 2 marcel
 
638
% XPG requires ability to do -O 0 as well as -O0
639 1950 laijx
-O*0  toggle(&olevel,0);    ALL CMP,CPP "-O0"
640 71 marcel
  "no optimization"
641 1950 laijx
-O*1  toggle(&olevel,1);    ALL CMP,CPP "-O1 -D__OPTIMIZE__"
642 71 marcel
  "minimal optimization"
643 1950 laijx
-O  toggle(&olevel,2);    ALL CMP,CPP "-O2 -D__OPTIMIZE__"
644 71 marcel
  "same as -O2"
645 1950 laijx
-O*2  toggle(&olevel,2);    ALL CMP,CPP "-O2 -D__OPTIMIZE__"
646 71 marcel
  "global optimization"
647 1950 laijx
-O*3  O3_flag=TRUE;toggle(&olevel,3); ALL CMP,CPP "-O3 -D__OPTIMIZE__"
648 71 marcel
  "full optimization"
649 1950 laijx
-O*%d ;       ALL CMP,CPP "-O3"
650 745 fengzhou
  "full optimization"
651 71 marcel
-Os toggle(&ospace,TRUE); ALL CMP "-OPT:space"
652
  "Optimize for space"
653
-mspace toggle(&ospace,TRUE); ALL CMP "-OPT:space"
654
  ""
655 2 marcel
-g  toggle(&glevel,2);    ALL CMP "-g2"
656
  "full debug info"
657
-g0 toggle(&glevel,0);    ALL CMP self
658
  "no debug info"
659 745 fengzhou
-g1 toggle(&glevel,1);    ALL CMP self "-Wl,--export-dynamic"
660 2 marcel
  ""
661
-g2 toggle(&glevel,2);    ALL CMP self
662
  ""
663 1950 laijx
-g3 toggle(&glevel,3);    ALL CMP,CPP self
664 135 marcel
  "Add debugging information for C preprocessor macros"
665 71 marcel
-gdwarf warn_ignored(option_name);  ALL NONE  ""
666 83 marcel
  ""
667 71 marcel
-gdwarf-1 warn_ignored(option_name);  ALL NONE  ""
668 83 marcel
  ""
669 71 marcel
-gdwarf-1+  warn_ignored(option_name);  ALL NONE  ""
670 83 marcel
  ""
671 71 marcel
-gdwarf-2 toggle(&glevel,2);  ALL CMP "-g2"
672
  "Produce debugging information in DWARF version 2 format"
673
-gdwarf-20  toggle(&glevel,0);  ALL CMP "-g0"
674
  "Produce DWARF 2 debugging information at debug level 0"
675
-gdwarf-21  toggle(&glevel,1);  ALL CMP "-g1"
676
  "Produce DWARF 2 debugging information at debug level 1"
677
-gdwarf-22  toggle(&glevel,2);  ALL CMP "-g2"
678
  "Produce DWARF 2 debugging information at debug level 2"
679 1950 laijx
-gdwarf-23  toggle(&glevel,3);  ALL CMP "-g3"
680 71 marcel
  "Produce DWARF 2 debugging information at debug level 3"
681
-ggdb toggle(&glevel,2);    ALL CMP "-g2"
682
  "Produce debugging information for use by GDB"
683 83 marcel
-ggdb3  toggle(&glevel,3);    ALL CMP "-g3"
684
  "Produce debugging information for use by GDB"
685 745 fengzhou
#ifdef KEY
686 1411 laijx
-gnu3 toggle(&gnu_major_version,3);toggle(&gnu_minor_version,3);  Cc  NONE  ""
687
  "Use GCC 3.3 C/C++ front-end."
688
-gnu4 toggle(&gnu_major_version,4);toggle(&gnu_minor_version,2);  Cc  NONE  ""
689
  "Use GCC 4.2 C/C++ front-end."
690
-gnu40  toggle(&gnu_major_version,4);toggle(&gnu_minor_version,0);  Cc  NONE  ""
691
  "Use GCC 4.0 C/C++ front-end."
692
-gnu42  toggle(&gnu_major_version,4);toggle(&gnu_minor_version,2);  Cc  NONE  ""
693
  "Use GCC 4.2 C/C++ front-end."
694 745 fengzhou
#endif
695 71 marcel
-gstabs   warn_ignored(option_name);  ALL NONE  ""
696 83 marcel
  ""
697 71 marcel
-gstabs+  warn_ignored(option_name);  ALL NONE  ""
698 83 marcel
  ""
699 71 marcel
-gstabs0  warn_ignored(option_name);  ALL NONE  ""
700 83 marcel
  ""
701 71 marcel
-gstabs1  warn_ignored(option_name);  ALL NONE  ""
702 83 marcel
  ""
703 71 marcel
-gstabs2  warn_ignored(option_name);  ALL NONE  ""
704 83 marcel
  ""
705 71 marcel
-gstabs3  warn_ignored(option_name);  ALL NONE  ""
706 83 marcel
  ""
707 745 fengzhou
 
708 180 syang
#define ABII32_DEFS     "-D_ILP32 -Amodel(ilp32)"
709
#define ABII64_DEFS     "-D_LP64"
710
#define ABIIA32_DEFS    "-D_ILP32 -Amodel(ilp32)"
711
-i32    toggle(&abi,ABI_I32);       ALL     pwrc,PFA,mpc        "-i32" ABII32_DEFS "-TARG:abi=i32 -D__ia64=1"
712
        ""
713
-i64     toggle(&abi,ABI_I64);       ALL     pwrc,PFA,mpc       "-i64" ABII64_DEFS "-TARG:abi=i64 -D__ia64=1"
714
        ""
715
-ia32   toggle(&abi,ABI_IA32);       ALL     pwrc,PFA,mpc       "-ia32" ABIIA32_DEFS "-TARG:abi=ia32 -D__ia32=1"
716
        ""
717
-itanium toggle(&isa,ISA_IA641);        ALL     NONE    "-i64"
718
        ""
719 2 marcel
 
720 71 marcel
% See the comments associated with -mlittle/big-endian
721 2 marcel
I-m0    ;   ALL GRP self
722
  ""
723
I-m1    ;   ALL GRP self
724
  ""
725
I-m2    ;   ALL GRP self
726
  ""
727
I-object    ; ALL ld  ""
728
  ""
729
 
730
% -useas says to go through the assembler phase
731
-useas  toggle(&skip_as,FALSE);   ALL NONE  ""
732
  ""
733
% -noas says to skip the assembler phase
734
-noas toggle(&skip_as,TRUE);    ALL NONE  ""
735
  ""
736 1950 laijx
-usegfe   ;   Cc  NONE  ""
737 2 marcel
  ""
738 1950 laijx
-usef90   ;   F90 NONE  ""
739 2 marcel
  ""
740
 
741
-NC%d ;  FTN  ffe "-NC%d"
742
  "set max # of continuation lines"
743
 
744
I-cvs   ;   FTN F self
745
  ""
746
I-cvs,%D  ;   FTN F "-cvs,%D"
747
  ""
748
I-cvs_nosrc ;   FTN F self
749
  ""
750
I-cvs_nosrc,%D  ;   FTN F "-cvs_nosrc,%D"
751
  ""
752
 
753
-automatic  toggle(&isstatic,1);    FTN NONE  ""
754
  ""
755
-auto_use%s ;     F90 ffe "-auto_use=%s"
756 135 marcel
  ""
757
 
758
-auto-use%s ;     F90 ffe "-auto_use=%s"
759 2 marcel
  "Act as if a USE statement is specified in every PU"
760
 
761 745 fengzhou
#ifdef KEY  /* bug 9058 */
762
-fcoco    toggle(&use_coco,TRUE); FTN NONE  ""
763
  "use coco Fortran preprocessor"
764 1950 laijx
-fcoco=%s toggle(&use_coco,TRUE);save_name(&coco_setfile,optargs);  FTN NONE  ""
765 745 fengzhou
  "use coco Fortran preprocessor"
766
#endif
767 2 marcel
-ftpp   toggle(&use_ftpp,1);  F90 NONE  ""
768
  ""
769
-macro_expand expand_ftpp_macros=TRUE;  F90 N ""
770 135 marcel
  ""
771
 
772
-macro-expand expand_ftpp_macros=TRUE;  F90 N ""
773 2 marcel
  "expand macros everywhere in ftpp"
774
 
775
-static-data    ;   FTN ffe self
776
  "treat local data as static"
777
-static   ;   LINK  ld  self
778
  ""
779
-static_threadprivate   ;   FTN ffe self
780 135 marcel
  ""
781
 
782
-static-threadprivate   ;   FTN ffe self
783 2 marcel
  "treat locals as static but not shared among multiple threads"
784
 
785 1950 laijx
-dumpspecs  warn_ignored(option_name);  ALL anyfe self
786 71 marcel
  ""
787
 
788 2 marcel
-backslash  first_phase=P_any_fe;   f77 ffe self
789
  "treat backslash as normal character rather than an escape"
790 135 marcel
 
791
#ifdef KEY /* Bug 4260 */
792
-byteswapio toggle(&io_byteswap,1);   F90 ffe self
793
  "Swap bytes during file I/O"
794
 
795
-convert%s  toggle(&io_byteswap,2);check_convert_name(optargs); F90 ffe "-convert %s"
796
  "Convert files by swapping bytes during I/O"
797
#endif /* KEY Bug 4260 */
798
 
799 2 marcel
-noexpopt ;   FTN be  "-OPT:fast_exp=no"
800 1950 laijx
  "Do not optimize exponentiation operations"
801 2 marcel
-keepdollar ;   f77 ffe self
802
  "Treat $ as a normal last character in symbol names"
803
-chararg1 ;   f77 ffe self
804
  ""
805
-nof77  ;   f77 ffe self
806
  ""
807 71 marcel
-ff77 warn_ignored(option_name);  FTN NONE  ""
808
  "Use idiomatic UNIX FORTRAN 77"
809
-ff90 ;   FTN NONE  ""
810
  "Allow Fortran 90 constructs"
811 1950 laijx
-fdirectives  ; FTN ffe ""
812 745 fengzhou
  "Recognize Fortran compiler directives inside comments"
813 1950 laijx
-fno-directives ; FTN ffe "-xall"
814 745 fengzhou
  "Ignore Fortran compiler directives inside comments"
815 1950 laijx
I-xall    ; FTN ffe self
816 745 fengzhou
  ""
817 71 marcel
-fsecond-underscore ;   FTN ffe self
818
  "Append a second underscore to symbols that already contain an underscore"
819
-fno-second-underscore  ;   FTN ffe self
820 1950 laijx
  "Do not append a second underscore to symbols that already contain an underscore"
821 71 marcel
-funderscoring  ;   FTN ffe self
822
  "Append underscores to symbols"
823
-fno-underscoring ;   FTN ffe self
824 1950 laijx
  "Do not append underscores to symbols"
825 71 marcel
-fcheck-new ; CC  cfe self
826
  "Check result of operator new for NULL"
827
-fno-check-new  ; CC  cfe self
828
  "Do not check result of operator new for NULL"
829 1489 carrot
-fvisibility-inlines-hidden ;   CC      cfe     self
830
        "for options compatibility only, ignored by Open64"
831
-frepo          ;       CC      cfe     self
832
        "Enable automatic template instantiation at link time, for options compatibility only, ignored by Open64"
833
-fconserve-space        ;       CC      cfe     self
834
        "Put uninitialized or runtime-initialized global variables into the common segment, for options compatibility only, ignored by Open64"
835
-felide-constructors    ;       CC      cfe     self
836
        "for options compatibility only, ignored by Open64"
837 1950 laijx
-fno-elide-constructors ; CC  cfe self
838
  "Do not perform an optimization that can avoid calling the copy constructor"
839 1489 carrot
-fno-implement-inlines  ;       CC      cfe     self
840
        "Do not emit out-of-line copies of inline functions controlled by `#pragma implementation', for options compatibility only, ignored by Open64"
841 745 fengzhou
-ffor-scope ; CC  cfe self
842
  "Variables declared in a for-init loop are constrained to that scope"
843
-fno-for-scope  ; CC  cfe self
844
  "Variables declared in a for-init loop extend to the enclosing scope"
845 71 marcel
-fuse-cxa-atexit  ; CC  cfe self
846
  "Register static destructors with __cxa_atexit instead of atexit"
847
-fno-use-cxa-atexit ; CC  cfe self
848
  "Register static destructors with atexit instead of __cxa_atexit"
849
-frtti  ; CC  cfe self
850
  "Generate runtime type information"
851
-fno-rtti ; CC  cfe self
852
  "Do not generate runtime type information"
853
-fimplicit-templates  ; CC  cfe self
854
  "Emit code for non-inline templates instantiated implicitly"
855
-fno-implicit-templates ; CC  cfe self
856
  "Never emit code for non-inline templates instantiated implicitly"
857
-fimplicit-inline-templates ; CC  cfe self
858
  "Emit code for inline templates instantiated implicitly"
859
-fno-implicit-inline-templates  ; CC  cfe self
860
  "Never emit code for inline templates instantiated implicitly"
861 83 marcel
-fweak  warn_ignored(option_name);  ALL NONE  ""
862
  ""
863
-fno-weak warn_ignored(option_name);  ALL NONE  ""
864
  ""
865
-fssa warn_ignored(option_name);  ALL NONE  ""
866
  ""
867
-fno-ssa  warn_ignored(option_name);  ALL NONE  ""
868
  ""
869
-fssa-ccp warn_ignored(option_name);  ALL NONE  ""
870
  ""
871
-fno-ssa-ccp  warn_ignored(option_name);  ALL NONE  ""
872
  ""
873
-fssa-dce warn_ignored(option_name);  ALL NONE  ""
874
  ""
875
-fno-ssa-dce  warn_ignored(option_name);  ALL NONE  ""
876
  ""
877
-foptimize-register-move  warn_ignored(option_name);  ALL NONE  ""
878
  ""
879
-fno-optimize-register-move warn_ignored(option_name);  ALL NONE  ""
880
  ""
881
-foptimize-sibling-calls  warn_ignored(option_name);  ALL NONE  ""
882
  ""
883
-fno-optimize-sibling-calls warn_ignored(option_name);  ALL NONE  ""
884
  ""
885 1441 hucheng
-femit-class-debug-always warn_ignored(option_name);  ALL NONE  ""
886
  ""
887
-fno-emit-class-debug-always  warn_ignored(option_name);  ALL NONE  ""
888
  ""
889
-ftree-vrp  warn_ignored(option_name);  ALL NONE  ""
890 1507 tianwei
  "Perform Value Range Propagation on trees"
891 1441 hucheng
-fno-tree-vrp warn_ignored(option_name);  ALL NONE  ""
892
  ""
893 1503 tianwei
-Wframe-larger-than-100000000   warn_ignored(option_name);      ALL     NONE    ""
894 1519 tianwei
        "help noticing functions with larger than usual frame sizes"
895 1503 tianwei
-Wno-vla   warn_ignored(option_name);      ALL     NONE    ""
896 1507 tianwei
        "prevent the -pedantic warning of the variable length array"
897 1503 tianwei
-Wno-error=%s   warn_ignored(option_name);      ALL     NONE    ""
898 1507 tianwei
        "makes -Ws warnings not be error"
899 2360 laijx
-ftls-model=%s  check_opt_tls_model(optargs);   Cc  cfe "-ftls-model=%s"
900
  "Thread-Local Storage model. \n\t\tShould be one of `global-dynamic', `local-dynamic', `initial-exec' or `local-exec'.\n\t\tThe default without -fpic is `initial-exec'; with -fpic the default is `global-dynamic`."
901 2 marcel
-varargs  ;   f77 ffe self
902
  "MATRA varargs"
903 135 marcel
%-nocode last_phase=earliest_phase(P_any_fe,last_phase);  FTN ffe   self
904
%        "do not generate any intermediate code from front-end"
905 2 marcel
 
906
-vms  warn_no_longer_supported2(option_name,"-vms_cc");   FTN NONE  self
907
  ""
908
-vms_cc   ;   f77 ffe self
909
  ""
910
-old_rl   ;   f77 ffe self
911
  ""
912
-bytereclen ;   f77 ffe "-old_rl"
913
  ""
914
-vms_stdin    ;   f77 ffe self
915
  ""
916
-vms_endfile    ;   f77 ffe self
917
  ""
918
-vms_library    ;   f77 ffe self
919
  ""
920
-usefpidx   ;   f ffe self
921
  ""
922
 
923
% this should be on by default unless -mp, but off now until freeze over
924
-cray_directives  ;   FTN N self
925
  ""
926 2111 shenruifen
-mipslibs      toggle(&use_mipslibs,TRUE);toggle(&use_craylibs,FALSE);         f77     NONE    ""
927
       ""
928 2 marcel
 
929 2111 shenruifen
-craylibs      toggle(&use_craylibs,TRUE);toggle(&use_mipslibs,FALSE);         f77     NONE    ""
930
       ""
931 135 marcel
#ifndef KEY
932 2 marcel
-cray_mp    toggle(&mpkind,CRAY_MP);   FTN ffe self
933
    "enable Cray micro-tasking directives"
934
 
935
-dsm      ;   FTN,Cc  GRP self
936 71 marcel
  ""
937 135 marcel
#endif
938 2 marcel
 
939 135 marcel
-mp     toggle(&mpkind,NORMAL_MP);      FTN,Cc  ffe,cfe     self
940
        "enable the multiprocessing directives"
941
-openmp     ;   FTN,Cc  ffe -mp
942
        "enable the multiprocessing directives (same as -mp)"
943 1411 laijx
#ifdef KEY
944
-fopenmp    ;   Cc  cfe self
945
        ""
946
#endif
947 135 marcel
#ifndef KEY
948 2 marcel
-dsm_clone    ;   ALL ipl,be,d  self
949 71 marcel
  ""
950 2 marcel
 
951
-dsm_check    ;   ALL be  self
952 71 marcel
  ""
953 2 marcel
 
954
-dsm_recompile    ;   ALL ffe,cfe,be,ipl  self
955 71 marcel
  ""
956 135 marcel
#endif
957 2 marcel
 
958
-memsim     ;   ALL N "-LNO:mem_sim=TRUE -lmemsim"
959 71 marcel
  ""
960 2 marcel
 
961
-memctr     ;   ALL be  "-memctr"
962 71 marcel
  ""
963 2 marcel
 
964 83 marcel
-mieee-fp ;   ALL be  "-OPT:IEEE_NaN_Inf=on"
965
  "Use IEEE floating point comparisons"
966
 
967
-mno-ieee-fp  ; ALL be  "-OPT:IEEE_NaN_Inf=off"
968
  "IEEE floating point comparisons not required"
969
 
970 2 marcel
-mp_keep warn_no_longer_supported2(option_name,"-CLIST/-FLIST");  FTN,cc  NONE  ""
971
  ""
972
 
973
-mpio     ;   FTN be  self
974 71 marcel
  ""
975 2 marcel
 
976
-mp_schedtype=%s  ;   FTN PFA,ffe   "-mp_schedtype=%s"
977 71 marcel
  ""
978 2 marcel
-chunk=%d   ;   FTN PFA,ffe "-chunk=%d"
979
  "Set the MP chunksize"
980
-mp_chunk=%d    ;   FTN ffe "-mp_chunk=%d"
981 71 marcel
  ""
982 2 marcel
 
983
-mp_use_locks warn_no_longer_needed(option_name);  FTN NONE ""
984
  ""
985
-mp_use_copy  warn_no_longer_needed(option_name);  FTN NONE ""
986
  ""
987
 
988
% invoke apo  - which discovers parallelism (synonym for -pfa, -pca)
989
-apo    auto_parallelize=TRUE;    Cc,FTN  be  "-pfa"
990 71 marcel
  ""
991 2 marcel
-apo*list auto_parallelize=TRUE;keep_list=TRUE;   Cc,FTN  be  "-pfa -LNO:prompl"
992 71 marcel
  ""
993 2 marcel
-apo*keep auto_parallelize=TRUE;keep_list=keep_mp=TRUE;Process_Promp();   Cc,FTN  be  "-pfa -LNO:prompl"
994 71 marcel
  ""
995 2 marcel
% invoke pfa  - which discovers parallelism
996
-pfa    auto_parallelize=TRUE;    Cc,FTN  be  "-pfa"
997 71 marcel
  ""
998 2 marcel
-pfa*list auto_parallelize=TRUE;keep_list=TRUE;   Cc,FTN  be  "-pfa -LNO:prompl"
999 71 marcel
  ""
1000 2 marcel
-pfa*keep auto_parallelize=TRUE;keep_list=keep_mp=TRUE;Process_Promp();   Cc,FTN  be  "-pfa -LNO:prompl"
1001 71 marcel
  ""
1002 2 marcel
% Because of limitation on derived flags, we repeat the -pfa,%s in the
1003
% implied list.  This is to find the parent flag so action is done.
1004
-pfa,%s   {auto_parallelize=TRUE; warning("options after -pfa, are ignored; should just use -pfa");}    Cc,FTN  be  "-pfa"
1005
  ""
1006
-pfa2 warn_no_longer_supported2(option_name,"-pfa");  ALL NONE ""
1007
  ""
1008
I-lo=ocktl  ;   FTN PFA self
1009
  ""
1010
 
1011
-i2 toggle(&iflag,1);   f77 ffe self
1012
  "make integer and logical quantities short (2 bytes)"
1013
 
1014
-noi4 toggle(&iflag,1);   f77 ffe self
1015
  "make integer and logical quantities short (2 bytes)"
1016
 
1017
-i4 toggle(&iflag,2);   FTN ffe self
1018
  "make integer and logical quantities long (4 bytes)"
1019
 
1020
-i8 toggle(&iflag,3);   FTN ffe self
1021
  "make integer and logical quantities long long (8 bytes)"
1022
 
1023
-r4 toggle(&rflag,1);   FTN ffe self
1024
  "use REAL*4 and COMPLEX*8 as the defaults for real and complex"
1025
 
1026
-r8 toggle(&rflag,2);   FTN ffe self
1027
  "use REAL*8 and COMPLEX*16 as the defaults for real and complex"
1028
 
1029
-r8const    ;   f77 ffe self
1030
  ""
1031
 
1032
-d8 toggle(&dflag,1);   FTN ffe self
1033
  "use double=8 and dcomplex=16"
1034
 
1035
-dump_input     ;   f77 ffe self
1036
  ""
1037
 
1038
-extend_source fortran_line_length=132;   FTN ffe self "-scan=132"
1039 135 marcel
  ""
1040
 
1041
-extend-source fortran_line_length=132;   FTN ffe "-extend_source -scan=132"
1042 2 marcel
  "make each source line 132 bytes long"
1043 135 marcel
-e*     ;   LINK  ld  ""
1044
  ""
1045 2 marcel
-d_lines    ;   FTN ffe self
1046 135 marcel
  ""
1047
-d-lines    ;   FTN ffe self
1048 2 marcel
  "compile lines with a D in column 1"
1049
-pad_char_literals    ;   F90 ffe self
1050 135 marcel
  ""
1051
-pad-char-literals    ;   F90 ffe "-pad_char_literals"
1052 2 marcel
  "blank pad character literal actual arguments to word boundary"
1053
-expand_include   ;   FTN ffe self
1054
  ""
1055 1950 laijx
-noextend_source fortran_line_length=72;  FTN ffe self "-scan=72"
1056 135 marcel
  ""
1057 1950 laijx
-noextend-source fortran_line_length=72;  FTN ffe "-noextend_source -scan=72"
1058 135 marcel
  ""
1059 2 marcel
-col72  fortran_line_length=72;   FTN ffe self "-scan=72"
1060
  "sets the source statement length to 72 columns"
1061
 
1062
-col80  fortran_line_length=80;   F90 ffe self "-scan=80"
1063
  "sets the source statement length to 80 columns"
1064
 
1065
-col120 fortran_line_length=120;  FTN ffe self "-scan=120"
1066
  "sets the source statement length to 120 columns"
1067
 
1068
I-scan%s    ;   FTN PFA self
1069
  ""
1070
 
1071 1950 laijx
-freeform toggle(&fortran_form,2);  F90 ffe ""
1072 2 marcel
  "sets Fortran 90 free form source statement formatting"
1073
 
1074 1950 laijx
-fixedform  toggle(&fortran_form,1);  F90 ffe ""
1075 2 marcel
  "sets Fortran 90 fixed form source statement formatting"
1076
 
1077
-default64    ;   F90  ffe  self
1078
  "Cray compatibility mode for F90"
1079
 
1080
% handle with special routine which reads option groups
1081
% after all switches read, pass switch to ld if ipa run, or to inline if
1082
% stand-alone inliner run
1083
-INLINE:%s  Process_Inline();        ALL     ipap "-INLINE:%s"
1084
  "specify inline processing option group"
1085
 
1086
% handle with special routine which reads option groups
1087
-INLINE   Process_Inline();        ALL     NONE    ""
1088
  "request inline processing"
1089
 
1090
-inline   Process_Inline();   Cc  NONE  "-INLINE"
1091
  "request inline processing"
1092
 
1093
-noinline Process_Inline();   Cc  NONE  "-INLINE:=OFF"
1094
  "suppress inline processing"
1095 1411 laijx
-minline-all-stringops ; Cc ipap ""
1096
   "force inline all stringops,ignored at present"
1097 1950 laijx
 
1098 135 marcel
-intrinsic=%s ;     FTN ffe "-intrinsic=%s"
1099
  "Add intrinsic to the initial set the compiler recognizes"
1100
 
1101 1950 laijx
-no-intrinsic=%s  ;   FTN ffe "-no-intrinsic=%s"
1102 135 marcel
  "Remove intrinsic from the initial set the compiler recognizes"
1103
 
1104 2 marcel
-nobool ;   CC  cfe self
1105
  "disallow bool keyword"
1106 71 marcel
-fprofile-arcs  Process_Profile_Arcs();   ALL be  "-OPT:profile_arcs=true"
1107
  ""
1108
-ftest-coverage Process_Test_Coverage();  ALL be  "-CG:test_coverage=true"
1109
  "turn on test coverage"
1110 2 marcel
 
1111
% warn about old flag no longer supported; new driver will split this
1112
% flag, which may cause confusion
1113
-Olimit%d warn_no_longer_supported2(option_name,"-OPT:Olimit=n");  ALL NONE self
1114
  ""
1115 1950 laijx
-pedantic   ;   Cc,CPP  CPP,cfe self
1116 2 marcel
  ""
1117 83 marcel
-fpermissive    ;   CC  cfe self
1118
  "Downgrade messages about nonconformant code to warnings"
1119
-fno-permissive   ;   CC  cfe self
1120
  "Keep messages about nonconformant code as errors"
1121
-use_readonly_const ;   FTN cfe self
1122 2 marcel
  ""
1123 83 marcel
-use_readwrite_const  ;   FTN cfe self
1124 2 marcel
  ""
1125
-change_const   ;   FTN NONE  ""
1126
  ""
1127
 
1128
% invoke pca  - which discovers parallelism
1129
-pca    auto_parallelize=TRUE;    Cc,FTN  be  "-pfa"
1130 71 marcel
  ""
1131 2 marcel
-pca*list auto_parallelize=TRUE;keep_list=TRUE;   Cc,FTN be "-pfa -LNO:prompl"
1132 71 marcel
  ""
1133 2 marcel
-pca*keep auto_parallelize=TRUE;keep_list=keep_mp=TRUE;Process_Promp();  cc,FTN be  "-pfa -LNO:prompl"
1134 71 marcel
  ""
1135 2 marcel
-pca,%s   {auto_parallelize=TRUE; warning("options after -pca, are ignored; should just use -pca");}  Cc,FTN  be  "-pfa"
1136
  ""
1137
 
1138
% for kernel folks
1139
-jalr   ;   ALL NONE  "-TARG:force_jalr"
1140
  ""
1141 135 marcel
-align8   ;   Cc,f77  ffe,be  self
1142 2 marcel
  "align data in common blocks to 8-bit boundaries"
1143 135 marcel
-align16  ;   Cc,f77  ffe,be  self
1144 2 marcel
  "align data in common blocks to 16-bit boundaries"
1145 135 marcel
-align32  ;   Cc,FTN  ffe,be  self
1146 2 marcel
  "align data in common blocks to 32-bit boundaries"
1147 135 marcel
-align64  ;   Cc,FTN  ffe,be  self
1148 2 marcel
  "align data in common blocks to 64-bit boundaries"
1149 135 marcel
-align128 ;   Cc,f77  ffe,be  self
1150 2 marcel
  "align data in common blocks to 128-bit boundaries"
1151
% -u can have two different meanings, so escape to hand-code
1152
-u*   ;   ALL NONE  ""
1153
  ""
1154
I-u%s   ;   Cc  ld  "-u %s"
1155
  ""
1156
-soname%s ;   LINK  ld  "-soname %s"
1157
  ""
1158
-y%s    ;   LINK  ld  "-y %s"
1159
  ""
1160
-n    ;   LINK  ld  self
1161
  ""
1162
-all    ;   LINK  ld  --whole-archive
1163
  ""
1164
-rpath%s  ;   LINK  ld  "-rpath %s"
1165
  ""
1166
--whole-archive   ; LINK  ld  self
1167
  ""
1168
--no-whole-archive  ; LINK  ld  self
1169
  ""
1170
 
1171
% CC options:
1172
-demangle ;   CC  ld  self
1173
  ""
1174
-prelink  ;   CC  NONE  ""
1175
  "use prelinker (default)"
1176
-no_prelink prelink_flag=FALSE;   CC  cfe self
1177 135 marcel
  ""
1178
-no-prelink prelink_flag=FALSE;   CC  cfe self
1179 2 marcel
  "do not use prelinker (i.e. instantiate all templates immediately)"
1180
 
1181
% IPA-related options:
1182
-ipa  toggle(&ipa,TRUE);    ALL ipap  self
1183
  "Perform interprocedural analysis and optimization"
1184
 
1185
-IPA  toggle(&ipa,TRUE);    ALL NONE  "-ipa"
1186
  "Perform interprocedural analysis and optimization"
1187
 
1188
-R*   ;   ALL NONE  ""
1189
  "pass flags to RATFOR"
1190 1950 laijx
% KEY Pass "-m elf_i386" and "-m elf_x86_64" to linker.  They are the only
1191
%     two valid linker emulation modes.  Bug 8441.
1192
-m*elf_i386 ; LINK  ld  ""
1193 745 fengzhou
  "Pass -m args to linker"
1194 1950 laijx
-m*elf_x86_64 ; LINK  ld  ""
1195 745 fengzhou
  "Pass -m args to linker"
1196 2111 shenruifen
#ifdef SL
1197
-m%s            ;               ALL     NONE    "-m %s"
1198
        "Pass -m args to as"
1199
#endif
1200 745 fengzhou
%-m run_m4=TRUE;    f77 NONE  ""
1201
% "run m4 on each RATFOR source"
1202 2 marcel
-framepointer warn_no_longer_supported2(option_name,"-TENV:large_stack");  ALL  NONE ""
1203
  ""
1204
-trapuv     ;   Cc,FTN  be  "-DEBUG:trap_uninitialized"
1205
  "trap uninitialized variables"
1206 135 marcel
-zerouv     ;   Cc,FTN  be  "-DEBUG:zero_uninitialized"
1207
  "set uninitialized variables to zero"
1208 1950 laijx
-H  ;   Cc,as,CPP CPP self
1209 2 marcel
  "print name of each header file used"
1210
% cord
1211
-cord toggle(&cordflag,TRUE);   ALL NONE  ""
1212 71 marcel
  ""
1213 2 marcel
-feedback*%s  add_string(feedback_files,optargs);   ALL NONE  ""
1214 71 marcel
  ""
1215
-fb%s save_name(&internal_fb_file,optargs);   ALL NONE  ""
1216
  ""
1217 1950 laijx
-   read_stdin=TRUE;  ALL CPP ""
1218 2 marcel
  ""
1219
--    check_dashdash(); ALL NONE  ""
1220
  ""
1221
-ignore_suffix  ignore_suffix=TRUE; ALL NONE  ""
1222 135 marcel
  ""
1223
-ignore-suffix  ignore_suffix=TRUE; ALL NONE  ""
1224 2 marcel
  "ignore source suffix when determining compiler language"
1225
 
1226 1950 laijx
-cif    keep_cif=TRUE;       F90  anyfe      self
1227 2 marcel
        ""
1228
 
1229
-ar ;   ALL NONE  ""
1230
  "create an archive (instead of a shared object or executable) using ar"
1231
 
1232
-promp  ;   FTN,Cc   be "-PHASE:prompf -PROMP:=on"
1233 71 marcel
  ""
1234 2 marcel
 
1235
%%% gcc compiler options
1236 135 marcel
 
1237
-mcpu=%s  set_cpu(optargs,M_CPU); ALL NONE  ""
1238 83 marcel
  "Set CPU type"
1239 2111 shenruifen
#if !defined(SL)
1240 135 marcel
-march=%s set_cpu(optargs,M_ARCH);  ALL NONE  ""
1241 83 marcel
  "Set CPU type"
1242 2111 shenruifen
#endif
1243 135 marcel
-mtune=%s set_cpu(optargs,M_TUNE);  ALL NONE  ""
1244 83 marcel
  "Set CPU type"
1245 2 marcel
-pipe ;   ALL NONE  ""
1246
  ""
1247 1950 laijx
--help  {print_help = TRUE;}  ALL NONE  ""
1248 2 marcel
  "print list of possible options"
1249 804 fengzhou
-dumpmachine  {printf(OPEN64_TARGET "\n"); execute_flag=FALSE;} ALL NONE  ""
1250 1950 laijx
  "Print the compilers target machine"
1251 2 marcel
%%% C language options
1252
-flang-isoc9x ;   Cc  f self
1253
  ""
1254 2111 shenruifen
#ifndef SL
1255 83 marcel
-msoft-float  warn_ignored(option_name);  ALL NONE  ""
1256
  ""
1257
-mno-soft-float warn_ignored(option_name);  ALL NONE  ""
1258
  ""
1259 2111 shenruifen
#endif
1260 2 marcel
-fcond-mismatch ;   Cc  f self
1261 71 marcel
  ""
1262 1411 laijx
#ifdef KEY
1263
-fcxx-openmp  toggle(&fcxx_openmp,1);   Cc  NONE  self -LANG:cxx_openmp=on
1264
  "Do OpenMP processing under C++"
1265
-fno-cxx-openmp toggle(&fcxx_openmp,0);   Cc  NONE  self -LANG:cxx_openmp=off
1266
  "Do not handle OpenMP under C++"
1267
#endif
1268 2 marcel
-fasm ;   Cc  f self
1269
  ""
1270 71 marcel
-fms-extensions ;   Cc  f self
1271
  "Accept broken MFC extensions without warning"
1272 2 marcel
-fno-asm  ;   Cc  f self
1273
  "Do not recognise the 'asm' keyword"
1274 71 marcel
-fbuiltin toggle(&fbuiltin,1);    Cc  NONE  self
1275 2 marcel
  ""
1276 71 marcel
-fno-builtin  toggle(&fbuiltin,0);    Cc  NONE  self
1277 2 marcel
  "Do not recognise any built in functions"
1278 745 fengzhou
-fmath-errno  toggle(&fmath_errno,1);   Cc,FTN  NONE  self
1279 71 marcel
  ""
1280 745 fengzhou
-fno-math-errno toggle(&fmath_errno,0);   Cc,FTN  NONE  self -LANG:math_errno=off
1281 71 marcel
  "Do not set ERRNO after calling math functions that are executed with a single instruction"
1282 135 marcel
-fmessage-length=%d ; C f "-fmessage-length=%d"
1283
  "Try to format error messages so that they fit on lines of about n characters."
1284
-fdiagnostics-show-location=once  ; C f self
1285
  "Instructs the diagnostic messages reporter to emit source location information once"
1286
-fdiagnostics-show-location=every-line  ; C f self
1287
  "Instructs the diagnostic messages reporter to emit source location information on every line"
1288 2 marcel
-ffreestanding  ;   Cc  f self
1289 71 marcel
  ""
1290 2 marcel
-fno-freestanding ;   Cc  f self
1291
  ""
1292
-fhosted  ;   Cc  f self
1293 71 marcel
  ""
1294 2 marcel
-fno-hosted ;   Cc  f self
1295
  ""
1296 83 marcel
-fgnu-keywords  ;   Cc  f self
1297
  "Recognize 'typeof' as a keyword"
1298
-fno-gnu-keywords ;   Cc  f self
1299
  "Do not recognize 'typeof' as a keyword"
1300 2 marcel
-fsigned-bitfields  ;   Cc  f self
1301 83 marcel
  "Make bitfields be signed by default"
1302 2 marcel
-fno-signed-bitfields ;   Cc  f self
1303 83 marcel
  "Make bitfields be unsigned by default"
1304 2 marcel
-fsigned-char ;   Cc  f self
1305
  "Make 'char' be signed by default"
1306
-fno-signed-char  ; Cc  f self "-D__CHAR_UNSIGNED__"
1307 83 marcel
  "Make 'char' be unsigned by default"
1308 2 marcel
-funsigned-bitfields  ;   Cc  f self
1309 83 marcel
  "Make bitfields be unsigned by default"
1310 2 marcel
-fno-unsigned-bitfields ;   Cc  f self
1311 83 marcel
  "Make bitfields be signed by default"
1312 2 marcel
-funsigned-char ;   Cc  f self "-D__CHAR_UNSIGNED__"
1313
  "Make 'char' be unsigned by default"
1314
-fno-unsigned-char  ; Cc  f self
1315
  ""
1316
-fwritable-strings  ;   Cc  f self
1317
  "Attempt to support writable-strings K&R style C"
1318
-fno-writable-strings ;   Cc  f self
1319
  ""
1320
-ftraditional ;   Cc  f self
1321
  ""
1322
-fno-traditional ;    Cc  f self
1323
  ""
1324
-fnotraditional ;   Cc  f self
1325
  ""
1326 1950 laijx
-traditional  ;   Cc,CPP  CPP self
1327 2 marcel
  "Attempt to support traditional K&R style C"
1328
-no-traditional ;   Cc  f self
1329
  ""
1330 1950 laijx
-gcc    ;   Cc  CPP self
1331 83 marcel
  "Define __GNUC__ and other macros"
1332 1950 laijx
-no-gcc   ;   Cc  CPP self
1333
  "Do not define __GNUC__ and other macros"
1334
-opencc   ;   Cc  CPP ""
1335 804 fengzhou
  "Define __OPENCC__ and other macros"
1336 1950 laijx
-no-opencc    ;   Cc  CPP ""
1337
  "Do not define __OPENCC__ and other macros"
1338
-traditional-cpp  ; Cc,CPP  NONE  "-traditional"
1339 2 marcel
  ""
1340 1950 laijx
-trigraphs  ;   Cc,CPP  CPP self
1341 2 marcel
  ""
1342
%%% Warning Options
1343
-syntax-only  ;   Cc  f self
1344
  ""
1345 1950 laijx
-pedantic-errors  ;   Cc,CPP  CPP,f self
1346 2 marcel
  "Issue warnings needed by strict compliance to ANSI C"
1347
% -w  ;   Cc  f self
1348
% "Suppress warnings"
1349
-W  ;   Cc  f self
1350
  "Enable extra warnings"
1351 1950 laijx
-Wall ;   Cc,CPP  CPP,f self "-WOPT:warn_uninit=on"
1352 2 marcel
  "Enable most warning messages"
1353
-Waggregate-return  ;   Cc  f self
1354
  "Warn about returning structures, unions or arrays"
1355
-Wno-aggregate-return ;   Cc  f self
1356 71 marcel
  "Do not warn about returning structures, unions or arrays"
1357 2 marcel
-Wbad-function-cast ;   Cc  f self
1358
  "Attempt to support writable-strings K&R style C"
1359
-Wno-bad-function-cast  ;   Cc  f self
1360 71 marcel
  "Do not warn when a function call is cast to a non-matching type"
1361 2 marcel
-Wcast-align  ;   Cc  f self
1362
  "Warn about pointer casts which increase alignment"
1363
-Wno-cast-align ;   Cc  f self
1364 71 marcel
  "Do not warn about pointer casts which increase alignment"
1365 2 marcel
-Wcast-qual ;   Cc  f self
1366
  "Warn about casts which discard qualifiers"
1367
-Wno-cast-qual  ;   Cc  f self
1368 71 marcel
  "Do not warn about casts which discard qualifiers"
1369 2 marcel
-Wchar-subscripts ;   Cc  f self
1370
  "Warn about subscripts whose type is 'char'"
1371
-Wno-char-subscripts  ;   Cc  f self
1372 71 marcel
  "Do not warn about subscripts whose type is 'char'"
1373 1950 laijx
-Wcomment ;   Cc,CPP  CPP,f self
1374 2 marcel
  "Warn if nested comments are detected"
1375 1950 laijx
-Wno-comment  ;   Cc,CPP  CPP,f self
1376 71 marcel
  "Do not warn if nested comments are detected"
1377 1950 laijx
-Wcomments  ;   Cc,CPP  CPP,f self
1378 83 marcel
  "Warn if nested comments are detected"
1379 1950 laijx
-Wno-comments ;   Cc,CPP  CPP,f self
1380 83 marcel
  "Do not warn if nested comments are detected"
1381 2 marcel
-Wconversion  ;   Cc  f self
1382
  "Warn about possibly confusing type conversions"
1383
-Wno-conversion ;   Cc  f self
1384 71 marcel
  "Do not warn about possibly confusing type conversions"
1385 1950 laijx
-Werror   ;   Cc,CPP  CPP,f,be  self
1386 71 marcel
  "Make all warnings into errors"
1387 1950 laijx
-Wno-error  ;   Cc,CPP  CPP,f self
1388 71 marcel
  "Do not make all warnings into errors"
1389 2 marcel
-Wformat  ;   Cc  f self
1390
  "Warn about printf format anomalies"
1391
-Wno-format ;   Cc  f self
1392 71 marcel
  "Do not warn about printf format anomalies"
1393 135 marcel
-Wformat=2  ;   Cc  f "-Wformat -Wformat-nonliteral -Wformat-security"
1394
  "Enable -Wformat plus format checks not included in -Wformat"
1395 2 marcel
-Wimplicit  ;   Cc  f self
1396 71 marcel
  "Warn about implicit declarations of functions or variables"
1397 2 marcel
-Wno-implicit ;   Cc  f self
1398 71 marcel
  "Do not warn about implicit declarations of functions or variables"
1399 2 marcel
-Wimplicit-int  ;   Cc  f self
1400
  "Warn when a declaration does not specify a type"
1401
-Wno-implicit-int ;   Cc  f self
1402 71 marcel
  "Do not warn when a declaration does not specify a type"
1403 2 marcel
-Wimplicit-function-declaration ;   Cc  f self
1404 71 marcel
  "Warn when a function is used before being declared"
1405 2 marcel
-Wno-implicit-function-declaration  ;   Cc  f self
1406 71 marcel
  "Do not warn when a function is used before being declared"
1407 2 marcel
-Werror-implicit-function-declaration ;   Cc  f self
1408 71 marcel
  "Give an error when a function is used before being declared"
1409 2 marcel
%-Wno-error-implicit-function-declaration ;   Cc  f self
1410 71 marcel
% "Do not give an error when a function is used before being declared"
1411 1950 laijx
-Wimport  ;   Cc,CPP  CPP,f self
1412 2 marcel
  "Warn about the use of the #import directive"
1413 1950 laijx
-Wno-import ;   Cc,CPP  CPP,f self
1414 71 marcel
  "Do not warn about the use of the #import directive"
1415 2 marcel
-Winline  ;   Cc  f self
1416 71 marcel
  "Warn if a function declared as inline cannot be inlined"
1417 2 marcel
-Wno-inline ;   Cc  f self
1418 71 marcel
  "Do not warn if a function declared as inline cannot be inlined"
1419 135 marcel
-Winvalid-pch ;   Cc  f ""
1420
  ""
1421
-Wno-invalid-pch  ;   Cc  f ""
1422
  ""
1423 83 marcel
-Wlarger-than-%d  ;   Cc  f "-Wlarger-than-%d"
1424 2 marcel
  "Warn if an object is larger than <number> bytes"
1425 83 marcel
-Wno-larger-than-%d ;   Cc  f "-Wno-larger-than-%d"
1426 71 marcel
  "Do not warn if an object is larger than <number> bytes"
1427 2 marcel
-Wlong-long ;   Cc  f self
1428 71 marcel
  "Warn if the long long type is used"
1429 2 marcel
-Wno-long-long  ;   Cc  f self
1430 71 marcel
  "Do not warn if the long long type is used"
1431 2 marcel
-Wmain  ;   Cc  f self
1432
  "Warn about suspicious declarations of main"
1433
-Wno-main ;   Cc  f self
1434 71 marcel
  "Do not warn about suspicious declarations of main"
1435 2 marcel
-Wmissing-braces  ; Cc  f self
1436
  "Warn about possibly missing braces around initialisers"
1437
-Wno-missing-braces ; Cc  f self
1438 71 marcel
  "Do not warn about possibly missing braces around initialisers"
1439 2 marcel
-Wmissing-declarations  ;   Cc  f self
1440
  "Warn about global funcs without previous declarations"
1441
-Wno-missing-declarations ;   Cc  f self
1442 71 marcel
  "Do not warn about global funcs without previous declarations"
1443 2 marcel
-Wmissing-noreturn  ;   Cc  f self
1444 71 marcel
  "Warn about functions that are candidates for 'noreturn' attribute"
1445 2 marcel
-Wno-missing-noreturn ;   Cc  f self
1446 71 marcel
  "Do not warn about functions that are candidates for 'noreturn' attribute"
1447
-Wnonnull ;   Cc  f self
1448
  "Warn when passing null to functions requiring non-null pointers"
1449 2 marcel
-Wmissing-prototypes  ;   Cc  f self
1450
  "Warn about global funcs without prototypes"
1451
-Wno-missing-prototypes ;   Cc  f self
1452 71 marcel
  "Do not warn about global funcs without prototypes"
1453 2 marcel
-Wmultichar ;   Cc  f self
1454 71 marcel
  "Warn if a multicharacter constant is used"
1455 2 marcel
-Wno-multichar  ;   Cc  f self
1456 71 marcel
  "Do not warn if a multicharacter constant is used"
1457 2 marcel
-Wnested-externs  ;   Cc  f self
1458
  "Warn about externs not at file scope level"
1459
-Wno-nested-externs ;   Cc  f self
1460 71 marcel
  "Do not warn about externs not at file scope level"
1461 2694 shenruifen
-Wold-style-definition ; Cc f self
1462
  "Warn if an old-style function definition is used. A warning is given even if there is a previous prototype."
1463
-Wno-old-style-definition ; Cc  f self
1464
  "Do not warn about old style fucntion definition"
1465 2 marcel
-Wparentheses ;   Cc  f self
1466
  "Warn about possible missing parentheses"
1467
-Wno-parentheses  ;   Cc  f self
1468 71 marcel
  "Do not warn about possible missing parentheses"
1469 2 marcel
-Wpointer-arith ;   Cc  f self
1470
  "Warn about function pointer arithmetic"
1471
-Wno-pointer-arith  ;   Cc  f self
1472 71 marcel
  "Do not warn about function pointer arithmetic"
1473 2694 shenruifen
-Wpointer-sign  ;   Cc  f self
1474 1148 rhundt
  "Warn for pointer asignments with different signedness"
1475 2694 shenruifen
-Wno-pointer-sign ;   Cc  f self
1476 1148 rhundt
  "Don't warn for pointer asignments with different signedness"
1477 2694 shenruifen
-Wpointer-to-int-cast        ;    Cc  f self
1478 1148 rhundt
  "Warn for pointer casts to integer types of a different size"
1479 2694 shenruifen
-Wno-pointer-to-int-cast        ;   Cc  f self
1480 1148 rhundt
  "Don't warn for pointer casts to integer types of a different size"
1481 2694 shenruifen
-Wno-int-to-pointer-cast        ;   Cc  f self
1482 1148 rhundt
  "Don't warn for casts to pointers from integer types of a different size"
1483 2694 shenruifen
-Wint-to-pointer-cast        ;    Cc  f self
1484 1148 rhundt
  "Warn for casts to pointers from integer types of a different size"
1485 2 marcel
-Wredundant-decls ;   Cc  f self
1486
  "Warn about multiple declarations of the same object"
1487
-Wno-redundant-decls  ;   Cc  f self
1488 71 marcel
  "Do not warn about multiple declarations of the same object"
1489 2 marcel
-Wreturn-type ;   Cc  f self
1490 71 marcel
  "Warn when a function return type defaults to int"
1491
-Wno-return-type  ;   Cc  f self
1492
  "Do not warn when a function return type defaults to int"
1493 2 marcel
-Wshadow  ;   Cc  f self
1494
  "Warn when one local variable shadows another"
1495
-Wno-shadow ;   Cc  f self
1496 71 marcel
  "Do not warn when one local variable shadows another"
1497 2 marcel
-Wsign-compare  ;   Cc  f self
1498
  "Warn about signed/unsigned comparisons"
1499
-Wno-sign-compare ;   Cc  f self
1500 71 marcel
  "Do not warn about signed/unsigned comparisons"
1501 2 marcel
-Wstrict-prototypes ;   Cc  f self
1502
  "Warn about non-prototyped function decls"
1503
-Wno-strict-prototypes  ;   Cc  f self
1504 71 marcel
  "Do not warn about non-prototyped function decls"
1505 2 marcel
-Wswitch  ;   Cc  f self
1506 71 marcel
  "Warn when a switch statement is incorrectly indexed with an enum"
1507
-Wswitch-default  ;   Cc  f self
1508
  "Warn when a switch statement has no default"
1509
-Wswitch-enum ;   Cc  f self
1510
  "Warn when a switch statement is missing a case for an enum member"
1511 2 marcel
-Wno-switch ;   Cc  f self
1512 71 marcel
  "Do not warn when a switch statement is incorrectly indexed with an enum"
1513
-Wdeclaration-after-statement ;   cc  f self
1514
  "Warn about declarations after statements (pre-C99)"
1515 1950 laijx
-Wtraditional ;   Cc,CPP  CPP,f self
1516 83 marcel
  "Warn about constructs whoes meaning change in ANSI C"
1517 1950 laijx
-Wno-traditional  ;   Cc,CPP  CPP,f self
1518 71 marcel
  "Do not warn about constructs whoes meaning change in ANSI C"
1519 1950 laijx
-Wtrigraphs ;   Cc,CPP  CPP,f self
1520 2 marcel
  "Warn when trigraphs are encountered"
1521 1950 laijx
-Wno-trigraphs  ;   Cc,CPP  CPP,f self
1522 71 marcel
  "Do not warn when trigraphs are encountered"
1523 1950 laijx
-Wundef ;   Cc,CPP  CPP,f self
1524 71 marcel
  "Warn if an undefined identifier appears in a #if directive"
1525 1950 laijx
-Wno-undef  ;   Cc,CPP  CPP,f self
1526 71 marcel
  "Do not warn if an undefined identifier appears in a #if directive"
1527 1950 laijx
-Wuninitialized   ; FTN,Cc  f self "-WOPT:warn_uninit=on"
1528 2 marcel
  "Warn about unitialized automatic variables"
1529 1950 laijx
-Wno-uninitialized  ; Cc  f self "-WOPT:warn_uninit=off"
1530 71 marcel
  "Do not warn about unitialized automatic variables"
1531 2 marcel
-Wunknown-pragmas ;   Cc  f self
1532 71 marcel
  "Warn when an unknown #pragma directive is encountered"
1533 2 marcel
-Wno-unknown-pragmas  ;   Cc  f self
1534 71 marcel
  "Do not warn when an unknown #pragma directive is encountered"
1535 2 marcel
-Wunused  ;   Cc  f self
1536
  "Warn when a variable is unused"
1537
-Wno-unused ;   Cc  f self
1538 71 marcel
  "Do not warn when a variable is unused"
1539 2 marcel
-Wwrite-strings ;   Cc  f self
1540
  "Mark strings as 'const char *'"
1541
-Wno-write-strings  ;   Cc  f self
1542 71 marcel
  "Do not mark strings as 'const char *'"
1543 1950 laijx
-Wdeprecated    ;   Cc,f  CPP self
1544 71 marcel
  "Announce deprecation of compiler features"
1545 1950 laijx
-Wno-deprecated   ;   Cc,f  CPP self
1546
  "Do not announce deprecation of compiler features"
1547
-Wctor-dtor-privacy ;   CC  CPP self
1548 71 marcel
  "Warn when all constructors/destructors are private"
1549 1950 laijx
-Wno-ctor-dtor-privacy  ;   CC  CPP self
1550 71 marcel
  "Do not warn when all constructors/destructors are private"
1551
-Wdiv-by-zero ;   Cc  f self
1552
  "Warn about compile-time integer division by zero"
1553
-Wno-div-by-zero  ;   Cc  f self
1554
  "Suppress warnings about compile-time integer division by zero"
1555 1950 laijx
-Wendif-labels  ;   Cc,CPP,f  CPP self
1556 71 marcel
  "Warn if #if or #endif is followed by text"
1557 1950 laijx
-Wno-endif-labels ;   Cc,CPP,f  CPP self
1558 71 marcel
  "Do not warn if #if or #endif is followed by text"
1559
-Weffc++  ;   CC  f self
1560 1950 laijx
  "Warn on 'Effective C++' style violations"
1561 71 marcel
-Wno-effc++ ;   CC  f self
1562 1950 laijx
  "Do not warn on 'Effective C++' style violations"
1563 71 marcel
-Wfloat-equal ;   Cc  f self
1564
  "Warn if floating point values are compared for equality"
1565
-Wno-float-equal  ;   Cc  f self
1566
  "Do not warn if floating point values are compared for equality"
1567
-Wformat-nonliteral ;   Cc  f self
1568
  "If -Wformat, warn if format string is not a string literal"
1569 1489 carrot
-Wno-format-zero-length ;               Cc      f       self
1570
        "Do not warn about zero-length format string"
1571 71 marcel
-Wno-format-nonliteral  ;   Cc  f self
1572
  "Do not warn if format string is not a string literal"
1573
-Wformat-security ;   Cc  f self
1574
  "If -Wformat, warn on potentially insecure format functions"
1575
-Wno-format-security  ;   Cc  f self
1576
  "Do not warn on potentially insecure format functions"
1577
-Wmissing-format-attribute  ;   Cc  f self
1578 1950 laijx
  "If -Wformat, warn on candidates for 'format' attributes"
1579 71 marcel
-Wno-missing-format-attribute ;   Cc  f self
1580 1950 laijx
  "Do not warn on candidates for 'format' attributes"
1581 1489 carrot
-Wno-missing-field-initializers ;               Cc      f       self
1582
        "Do not warn if a structure's initializer has some fields missing"
1583 71 marcel
-Wno-deprecated-declarations  ;   Cc  f self
1584
  "Do not warn about deprecated code"
1585
-Wno-format-extra-args  ;   Cc  f self
1586
  "Do not warn about extra arguments to printf-like functions"
1587
-Wno-format-y2k ;   Cc  f self
1588 1950 laijx
  "Do not warn about 'strftime' formats that yield two-digit years"
1589 71 marcel
-Wno-non-template-friend  ;   CC  f self
1590
  "Do not warn about friend functions declared in templates"
1591
-Wno-pmf-conversions  ;   CC  f self
1592
  "Do not warn about converting PMFs to plain pointers"
1593
-Wnon-virtual-dtor  ;   CC  f self
1594
  "Warn when a class declares a dtor that should be virtual"
1595
-Wno-non-virtual-dtor ;   CC  f self
1596
  "Do not warn when a class declares a dtor that should be virtual"
1597
-Wold-style-cast  ;   CC  f self
1598
  "Warn when a C-style cast to a non-void type is used"
1599
-Wno-old-style-cast ;   CC  f self
1600
  "Do not warn when a C-style cast to a non-void type is used"
1601
-Woverloaded-virtual  ;   CC  f self
1602
  "Warn when a function declaration hides virtual functions"
1603
-Wno-overloaded-virtual ;   CC  f self
1604
  "Do not warn when a function declaration hides virtual functions"
1605
-Wpacked  ;   Cc  f self
1606
  "Warn when packed attribute of a struct has no effect"
1607
-Wno-packed ;   Cc  f self
1608
  "Do not warn when packed attribute of a struct has no effect"
1609
-Wpadded  ;   Cc  f self
1610
  "Warn when padding is included in a struct"
1611
-Wno-padded ;   Cc  f self
1612
  "Do not warn when padding is included in a struct"
1613
-Wreorder ;   CC  f self
1614
  "Warn when reordering member initializers"
1615
-Wno-reorder  ;   CC  f self
1616
  "Do not warn when reordering member initializers"
1617
-Wsequence-point  ;   Cc  f self
1618
  "Warn about code violating sequence point rules"
1619
-Wno-sequence-point ;   Cc  f self
1620
  "Do not warn about code violating sequence point rules"
1621
-Wsign-promo  ;   CC  f self
1622
  "Warn when overload resolution promotes from unsigned to signed"
1623
-Wno-sign-promo ;   CC  f self
1624
  "Do not warn when overload resolution promotes from unsigned to signed"
1625
-Wsynth ;   CC  f self
1626
  "Warn about synthesis that is not backwards compatible with cfront"
1627
-Wno-synth  ;   CC  f self
1628
  "Do not warn about synthesis that is not backwards compatible with cfront"
1629 1950 laijx
-Wsystem-headers  ;   Cc,CPP  CPP,f self
1630 71 marcel
  "Print warnings for constructs in system header files"
1631 1950 laijx
-Wno-system-headers ;   Cc,CPP  CPP,f self
1632 71 marcel
  "Do not print warnings for constructs in system header files"
1633
-Wunreachable-code  ;   Cc  f self
1634
  "Warn about code that will never be executed"
1635
-Wno-unreachable-code ;   Cc  f self
1636
  "Do not warn about code that will never be executed"
1637 1950 laijx
-Wunused-macros ;   Cc,CPP  CPP,f self
1638 83 marcel
  "Warn about macros defined but not used"
1639 1950 laijx
-Wno-unused-macros  ;   Cc,CPP  CPP,f self
1640 83 marcel
  "Do not warn about macros defined but not used"
1641 71 marcel
-Wunused-function ;   Cc  f self
1642
  "Warn about unused static and inline functions"
1643
-Wno-unused-function  ;   Cc  f self
1644
  "Do not warn about unused static and inline functions"
1645
-Wunused-label  ;   Cc  f self
1646
  "Warn about unused labels"
1647
-Wno-unused-label ;   Cc  f self
1648
  "Do not warn about unused labels"
1649
-Wunused-parameter  ;   Cc  f self
1650
  "Warn about unused function parameters"
1651
-Wno-unused-parameter ;   Cc  f self
1652
  "Do not warn about unused function parameters"
1653
-Wunused-value  ;   Cc  f self
1654
  "Warn about statements whose results are not used"
1655
-Wno-unused-value ;   Cc  f self
1656
  "Do not warn about statements whose results are not used"
1657
-Wunused-variable ;   Cc  f self
1658
  "Warn about local and static variables that are not used"
1659
-Wno-unused-variable  ;   Cc  f self
1660
  "Do not warnarn about local and static variables that are not used"
1661
-Wdisabled-optimization warn_ignored(option_name);    Cc  NONE  ""
1662
  "Warn if a requested optimization pass is disabled"
1663
-Wno-disabled-optimization  ;   Cc  f self
1664
  "Do not warn if a requested optimization pass is disabled"
1665 2 marcel
%%% Optimization Options
1666
-fbranch-probabilities  ;   Cc  f self
1667 71 marcel
  ""
1668 2 marcel
-foptimize-register-moves ;   Cc  f self
1669
  ""
1670
-fcaller-saves  ;   Cc  f self
1671 71 marcel
  ""
1672 2 marcel
-fcse-follow-jumps  ;   Cc  f self
1673 71 marcel
  ""
1674 2 marcel
-fcse-skip-blocks ;   Cc  f self
1675 71 marcel
  ""
1676 2 marcel
-fdelayed-branch  ;   Cc  f self
1677 71 marcel
  ""
1678 2 marcel
-fexpensive-optimizations ;   Cc  f self
1679 71 marcel
  ""
1680 745 fengzhou
-ffast-math toggle(&ffast_math,1);    Cc,FTN  f,be  "-OPT:ffast_math=ON -fno-math-errno"
1681 2 marcel
  "Improve FP speed by violating ANSI & IEEE rules"
1682 745 fengzhou
-fno-fast-math  toggle(&ffast_math,0);    Cc,FTN  f "-OPT:ffast_math=OFF -fmath-errno"
1683 83 marcel
  "Conform to ANSI & IEEE math rules at the expense of speed"
1684 745 fengzhou
-funsafe-math-optimizations ; Cc  f "-OPT:funsafe_math_optimizations=ON -fno-math-errno"
1685 83 marcel
  "Improve FP speed by violating ANSI & IEEE rules"
1686 745 fengzhou
-fno-unsafe-math-optimizations  ; Cc  f "-OPT:funsafe_math_optimizations=OFF -fmath-errno"
1687 83 marcel
  "Conform to ANSI & IEEE math rules at the expense of speed"
1688 2111 shenruifen
#if defined(MIPS) && !defined(SL)
1689 1411 laijx
-ffloat-store warn_ignored(option_name);  Cc,FTN  NONE  ""
1690
#else
1691 745 fengzhou
-ffloat-store ; Cc,FTN  be  "-CG:x87_store=1:min_spill_loc_size=1"
1692 2 marcel
  "Do not store floats in registers"
1693 1950 laijx
#endif
1694 2 marcel
-fforce-addr  ;   Cc  f self
1695 71 marcel
  ""
1696 2 marcel
-fforce-mem ;   Cc  f self
1697 71 marcel
  ""
1698 2 marcel
-fdata-sections ;   Cc  f self
1699
  ""
1700
-ffunction-sections ;   Cc  f self
1701 71 marcel
  ""
1702 2 marcel
-fgcse    ;   Cc  f self
1703
  ""
1704 1489 carrot
-fno-gcse       ;               Cc      f       self
1705
        "Disable global common subexpression elimination, for options compatibility only, ignored by Open64"
1706
-falign-functions       ;               Cc      f       self
1707
        "Align the start of functions to the machine-dependent default value, for options compatibility only, ignored by Open64"
1708
-falign-functions=%d    ;               Cc      f       "-falign-functions=%d"
1709
        "Align the start of functions to the next power-of-two greater than n, for options compatibility only, ignored by Open64"
1710
-falign-jumps=%d        ;               Cc      f       "-falign-jumps=%d"
1711
        "Align branch targets to a power-of-two boundary, for options compatibility only, ignored by Open64"
1712
-falign-loops           ;               Cc      f       self
1713
        "Align loops to a machine-dependent default value, for options compatibility only, ignored by Open64"
1714
-falign-loops=%d        ;               Cc      f       "-falign-loops=%d"
1715
        "Align loops to a power-of-two boundary, skipping up to n bytes, for options compatibility only, ignored by Open64"
1716
-falign-labels          ;               Cc      f       self
1717
        "Align all branch targets to a machine-dependent default value, for options compatibility only, ignored by Open64"
1718 2 marcel
-finline-functions  ;   Cc  f self
1719 71 marcel
  "Automatically integrate simple functions into their callers"
1720
-fno-inline-functions ;   Cc  f self
1721
  "Do not automatically integrate simple functions into their callers"
1722 83 marcel
-finline-limit=%d ; Cc  f "-finline-limit=%d"
1723 2 marcel
  ""
1724
-fkeep-inline-functions ;   Cc  f self
1725
  "Generate code for funcs even if they are fully inlined"
1726
-fno-default-inline ;   Cc  f self
1727
  ""
1728
-fno-defer-pop    ;   Cc  f self
1729
  ""
1730
-fno-function-cse ;   Cc  f self
1731
  ""
1732 1411 laijx
-finline  Process_Inline();   Cc  f "-INLINE"
1733 83 marcel
  ""
1734 1411 laijx
-fno-inline Process_Inline();   Cc  f "-INLINE:=off"
1735 2 marcel
  ""
1736 135 marcel
-fabi-version=%d  ;   C f "-fabi-version=%d"
1737
  ""
1738
-fno-operator-names ;   C f self
1739
  "Do not treat operator keywords and, bitand, bitor, compl, not, or and xor as keywords."
1740 2 marcel
-fno-peephole   ;   Cc  f self
1741
  ""
1742
-fomit-frame-pointer  ;   Cc  f self
1743
  "When possible do not generate stack frames"
1744
-fno-omit-frame-pointer ;   Cc  f self
1745
  ""
1746
-fregmove ;   Cc  f self
1747
  ""
1748
-frerun-cse-after-loop  ;   Cc  f self
1749 71 marcel
  ""
1750 2 marcel
-frerun-loop-opt  ;   Cc  f self
1751
  ""
1752
-fschedule-insns  ;   Cc  f self
1753 71 marcel
  ""
1754 1411 laijx
-fno-schedule-insns ;   Cc  f self
1755
  ""
1756 2 marcel
-fschedule-insns2 ;   Cc  f self
1757 71 marcel
  ""
1758 1411 laijx
-fno-schedule-insns2  ;   Cc  f self
1759
  ""
1760 2 marcel
-fstrength-reduce ;   Cc  f self
1761
  "Perform strength reduction optimisations"
1762
-fno-strength-reduce  ;   Cc  f self
1763
  ""
1764
-fthread-jumps  ;   Cc  f self
1765
  "Perform jump threading optimisations"
1766 83 marcel
-ftemplate-depth-%d ;   CC  f "-ftemplate-depth-%d"
1767
  "Set maximum instantiation depth for template classes"
1768 1411 laijx
-ftree-ter  ;   Cc  f self
1769
  ""
1770
-fno-tree-ter ;   Cc  f self
1771
  ""
1772 2 marcel
-funroll-all-loops  ;   Cc  f self
1773
  "Peform loop onrolling for all loops"
1774
-funroll-loops  ;   Cc  f self
1775
  "unroll-loops"
1776
-fmove-all-movables ;   Cc  f self
1777
  ""
1778
-freduce-all-givs ;   Cc  f self
1779
  ""
1780 135 marcel
-fstrict-aliasing ;   Cc  f self "-OPT:alias=typed"
1781 71 marcel
  "Assume strictest aliasing rules"
1782
-Wstrict-aliasing ;   Cc  f self
1783
  "Warn about code that breaks strict aliasing rules"
1784 2 marcel
-fno-strict-aliasing  ;   Cc  f self
1785 71 marcel
  "Do not assume strict aliasing rules"
1786
-Wno-strict-aliasing  ;   Cc  f self
1787
  "Do not warn about code that breaks strict aliasing rules"
1788
-dA warn_ignored(option_name);  Cc  NONE  self
1789 2 marcel
  ""
1790 71 marcel
-db warn_ignored(option_name);  Cc  NONE  self
1791 2 marcel
  ""
1792 71 marcel
-dB warn_ignored(option_name);  Cc  NONE  self
1793 2 marcel
  ""
1794 71 marcel
-dc warn_ignored(option_name);  Cc  NONE  self
1795
  ""
1796
-dC warn_ignored(option_name);  Cc  NONE  self
1797
  ""
1798
-dd warn_ignored(option_name);  Cc  NONE  self
1799
  ""
1800
-de warn_ignored(option_name);  Cc  NONE  self
1801
  ""
1802
-dE warn_ignored(option_name);  Cc  NONE  self
1803
  ""
1804
-df warn_ignored(option_name);  Cc  NONE  self
1805
  ""
1806
-dF warn_ignored(option_name);  Cc  NONE  self
1807
  ""
1808
-dg warn_ignored(option_name);  Cc  NONE  self
1809
  ""
1810
-dh warn_ignored(option_name);  Cc  NONE  self
1811
  ""
1812
-dk warn_ignored(option_name);  Cc  NONE  self
1813
  ""
1814
-do warn_ignored(option_name);  Cc  NONE  self
1815
  ""
1816
-dG warn_ignored(option_name);  Cc  NONE  self
1817
  ""
1818
-di warn_ignored(option_name);  Cc  NONE  self
1819
  ""
1820
-dj warn_ignored(option_name);  Cc  NONE  self
1821
  ""
1822
-dl warn_ignored(option_name);  Cc  NONE  self
1823
  ""
1824
-dL warn_ignored(option_name);  Cc  NONE  self
1825
  ""
1826
% This flag collides with the "dynamic" toggle flag
1827
%-dn  warn_ignored(option_name);  Cc  NONE  self
1828
% "Dump after register renumbering, to file.25.rnreg."
1829
-dr warn_ignored(option_name);  Cc  NONE  self
1830
  ""
1831
-dR warn_ignored(option_name);  Cc  NONE  self
1832
  ""
1833
-ds warn_ignored(option_name);  Cc  NONE  self
1834
  ""
1835
-dS warn_ignored(option_name);  Cc  NONE  self
1836
  ""
1837
-dt warn_ignored(option_name);  Cc  NONE  self
1838
  ""
1839
-dw warn_ignored(option_name);  Cc  NONE  self
1840
  ""
1841
-dX warn_ignored(option_name);  Cc  NONE  self
1842
  ""
1843
-dz warn_ignored(option_name);  Cc  NONE  self
1844
  ""
1845
-da warn_ignored(option_name);  Cc  NONE  self
1846
  ""
1847
-dm warn_ignored(option_name);  Cc  NONE  self
1848
  ""
1849
-dp warn_ignored(option_name);  Cc  NONE  self
1850
  ""
1851
-dP warn_ignored(option_name);  Cc  NONE  self
1852
  ""
1853
-dv warn_ignored(option_name);  Cc  NONE  self
1854
  ""
1855
-dx warn_ignored(option_name);  Cc  NONE  self
1856
  ""
1857
% This flag collides with the "dynamic" toggle flag
1858
%-dy  warn_ignored(option_name);  Cc  NONE  self
1859
% "Dump debugging information during parsing, to standard error."
1860 83 marcel
%%% Preprocessor options
1861 1950 laijx
-dD ; Cc,as,CPP CPP self
1862 83 marcel
  "Generate list of non-predefined macro directives"
1863 1950 laijx
-dI ; Cc,as,CPP CPP self
1864 83 marcel
  "Output #include directives in addition to preprocessor results"
1865 1950 laijx
-dM ; Cc,as,CPP CPP self
1866 83 marcel
  "Generate list of directives for all macros"
1867 1950 laijx
-dN ; Cc,as,CPP CPP self
1868 83 marcel
  "Generate list of all macro names defined"
1869 1950 laijx
-idirafter%D  ;   Cc,as,CPP CPP "-idirafter %D"
1870 2 marcel
  ""
1871 1950 laijx
-include%s  ;   Cc,as,CPP CPP "-include %s"
1872 2 marcel
  ""
1873 1950 laijx
-imacros%s  ;   Cc,as,CPP CPP "-imacros %s"
1874 2 marcel
  ""
1875 1950 laijx
-iprefix%s  ;   Cc,as,CPP CPP "-iprefix %s"
1876 2 marcel
  ""
1877 1950 laijx
-iwithprefix%D  ;   Cc,as,CPP CPP "-iwithprefix %D"
1878 2 marcel
  ""
1879 1950 laijx
-iwithprefixbefore%D  ;   Cc,as,CPP CPP "-iwithprefixbefore %D"
1880 2 marcel
  ""
1881 1950 laijx
-isystem%D  accumulate_isystem(optargs);  Cc,FTN,as,CPP CPP "-isystem %D"
1882 2 marcel
  ""
1883 1950 laijx
-isysroot%D ;   Cc,as,CPP CPP "-isysroot %D"
1884 1411 laijx
  ""
1885 1950 laijx
-MD ;   Cc,as,CPP CPP self
1886 71 marcel
  "Write dependencies to .d output file"
1887 1950 laijx
-MF%s ;   Cc,as,CPP CPP "-MF %s"
1888 71 marcel
  "Write dependencies to specified output file"
1889 1950 laijx
-MMD  ;   Cc,as,CPP CPP self
1890 71 marcel
  "Write user dependencies to .d output file"
1891 1950 laijx
-MM last_phase=P_any_cpp; Cc,as,CPP CPP self
1892 71 marcel
  "Output user dependencies of source file"
1893 1950 laijx
-MG ;   Cc,as,CPP CPP self
1894 71 marcel
  "With -M or -MM, treat missing header files as generated files"
1895 1950 laijx
-MT%s ;   Cc,as,CPP CPP "-MT %s"
1896 71 marcel
  "Change the target of the generated dependency rules"
1897 1950 laijx
-MQ%s ;   Cc,as,CPP CPP "-MQ %s"
1898 71 marcel
  "Same as -MT, but quote characters that are special to Make"
1899
%Fixing bug 375
1900 1950 laijx
-MP ;   Cc,as,CPP CPP self
1901 71 marcel
  "With -M or -MM, add phony targets for each dependency"
1902
%Fixing bug 493
1903
-aux-info%s     ;       as   cfe     "-aux-info %s"
1904
        ""
1905
-ff2c-abi%s ; ALL ffe "-ff2c-abi %s"
1906 83 marcel
  "Tell Fortran compiler to use the f2c ABI for symbols in file"
1907 745 fengzhou
-fdecorate%s  ; ALL ffe "-fdecorate %s"
1908
  "File tells Fortran compiler how to transform ids into linker symbols"
1909 1950 laijx
-undef  ;   Cc,as,CPP CPP self
1910 2 marcel
  ""
1911
%%% Code Generation Options
1912
-fcall-saved-%s ;   Cc  NONE  ""
1913
  ""
1914
-fcall-used-%s  ;   Cc  NONE  ""
1915
  ""
1916 135 marcel
% KEY: Because of limitation on derived flags, we repeat the -fexceptions
1917
% in the implied list.  This is to find the parent flag so action is done.
1918 1411 laijx
#ifdef X8664
1919 1511 laijx
-fexceptions  ; ALL cfe "-fexceptions -fgnu-exceptions -TENV:frame_pointer=on"
1920 2 marcel
  "Enable exception handling"
1921 1411 laijx
#else
1922 1511 laijx
-fexceptions  ; ALL cfe "-fexceptions -fgnu-exceptions"
1923 1411 laijx
  "Enable exception handling"
1924 745 fengzhou
-foptimize-regions  ;   Cc  cfe "-foptimize-regions -TENV:omit_ue_destroy_frame=on"
1925
    "Enable optimization of EH regions formation"
1926 1411 laijx
#endif
1927 1497 dehao
-fhandle-exceptions ; Cc  cpp,cfe self
1928 71 marcel
  "Enable exception handling"
1929 2111 shenruifen
#ifndef SL
1930 1950 laijx
-fno-exceptions ; Cc  CPP,cfe "-fno-exceptions -fno-gnu-exceptions"
1931 71 marcel
  "Disable exception handling"
1932 2111 shenruifen
#else
1933
-fno-exceptions ; Cc  CPP,cfe "-fno-exceptions"
1934
  "Disable exception handling"
1935
#endif
1936 1950 laijx
-fno-optimize-regions ; Cc  cfe self
1937
  "Enable optimization of EH regions formation"
1938 71 marcel
-fno-handle-exceptions  ; Cc  cfe self
1939
  "Disable exception handling"
1940 861 hucheng
#ifdef KEY  /* bug 11732 */
1941
-fgnu-exceptions  toggle(&gnu_exceptions,TRUE); C cfe ""
1942
  "Enable exception handling in the GNU front-end"
1943
-fno-gnu-exceptions toggle(&gnu_exceptions,FALSE);  C cfe ""
1944
  "Disable exception handling in the GNU front-end"
1945
#endif
1946 2 marcel
-ffixed-%s  ;   Cc  NONE  "-TENV:registers_not_allocatable=%s"
1947
  ""
1948
-mfixed-range=%s  ; Cc  NONE  "-TENV:registers_not_allocatable=%s"
1949
  ""
1950 1411 laijx
#ifdef X8664
1951 745 fengzhou
-funwind-tables ;   ALL NONE  "-CG:emit_unwind_info=on -TENV:frame_pointer=on"
1952 2 marcel
  ""
1953 1411 laijx
#else
1954
-funwind-tables ;   ALL NONE  "-CG:emit_unwind_info=on"
1955
  ""
1956
#endif
1957 2 marcel
-fno-unwind-tables  ; Cc  NONE  "-CG:emit_unwind_info=off"
1958
  ""
1959
-mconstant-gp ;   Cc  NONE  "-TENV:constant_gp=on"
1960
  ""
1961 2694 shenruifen
#ifndef SL
1962 2 marcel
-mno-sdata  ;   Cc  NONE  "-G0"
1963
  ""
1964 2694 shenruifen
#endif
1965 1411 laijx
-finstrument-functions  ; ALL NONE  "-OPT:cyg_instr=4"
1966
  ""
1967 71 marcel
-finhibit-size-directive  ;   Cc  be  "-CG:inhibit_size_directive=1:emit_asm_dwarf=0"
1968 2 marcel
  "Do not generate .size directives"
1969
-fcheck-memory-usage  ;   Cc  NONE  ""
1970 71 marcel
  ""
1971 2 marcel
-fprefix-function-name  ;   Cc  NONE  ""
1972
  "Add a prefix to all function names"
1973
-fno-common ;   Cc  cfe self
1974
  "use strict ref/def initialization model"
1975
-fno-ident  ;   Cc  cfe self
1976
  "Ignore #ident directives"
1977 1489 carrot
-fident         ;               Cc      cfe     self
1978
        "for options compatibility only, ignored by Open64"
1979
-fwrapv         ;               Cc      cfe     self
1980
        "for options compatibility only, ignored by Open64"
1981
-fvisibility=hidden     ;               Cc      cfe     self
1982
        "Set the default ELF image symbol visibility to be hidden, for options compatibility only, ignored by Open64"
1983
-fvisibility=default    ;               Cc      cfe     self
1984
        "Make every ELF image symbol public, for options compatibility only, ignored by Open64"
1985 2 marcel
-fno-gnu-linker ;   Cc  NONE  ""
1986
  ""
1987
-fpcc-struct-return ;   Cc  NONE  ""
1988
  ""
1989 1950 laijx
-fpic toggle(&pic,TRUE);  A anyfe self "-TENV:PIC"
1990 2 marcel
  "Generate position independent code, if possible"
1991 1950 laijx
-fPIC toggle(&pic,TRUE);  A anyfe self "-TENV:PIC"
1992 71 marcel
  "Generate position independent code, if possible"
1993 1950 laijx
-fno-PIC  toggle(&pic,TRUE);  A anyfe self
1994 71 marcel
  "Do not generate position independent code"
1995 1950 laijx
-fno-pic  toggle(&pic,TRUE);  A anyfe self
1996 71 marcel
  "Do not generate position independent code"
1997 1950 laijx
-fpie ;   A anyfe self "-TENV:PIC"
1998 83 marcel
  "Generate position independent code, if possible"
1999
-pie  ;   A ld  self "-TENV:PIC"
2000
  "Generate position independent code, if possible"
2001 1950 laijx
-fPIE ;   A anyfe self "-TENV:PIC"
2002 83 marcel
  "Generate position independent code, if possible"
2003 1950 laijx
-fno-pie  ; A anyfe self
2004 83 marcel
  "Do not generate position independent code"
2005 1950 laijx
-fno-PIE  ; A anyfe self
2006 83 marcel
  "Do not generate position independent code"
2007 1950 laijx
-frandom-seed=%s  ;   Cc  anyfe "-frandom-seed=%s"
2008 1411 laijx
  ""
2009 2 marcel
-freg-struct-return ;   Cc  NONE  ""
2010 71 marcel
  ""
2011 2 marcel
-fshared-data ;   Cc  NONE  ""
2012
  "Mark data as shared rather than private"
2013
-fshort-enums ;   Cc  NONE  ""
2014
  "Use the smallest fitting integer to hold enums"
2015
-fshort-double  ;   Cc  NONE  ""
2016
  "Use the same size for double as for float"
2017 1950 laijx
-fshort-wchar ;   Cc  anyfe self
2018 745 fengzhou
  "Use short unsigned int for wchar_t instead of the default underlying type for the target."
2019 2 marcel
-fvolatile  ;   Cc  NONE  ""
2020
  "Consider all mem refs through pointers as volatile"
2021
-fvolatile-global ;   Cc  NONE  ""
2022
  "Consider all mem refs to global data to be volatile"
2023
-fvolatile-static ;   Cc  NONE  ""
2024
  ""
2025
-fverbose-asm ;   Cc  NONE  ""
2026
  ""
2027
-fpack-struct ;   Cc  NONE  ""
2028
  "Pack structure members together without holes"
2029
-fstack-check ;   Cc  NONE  ""
2030 71 marcel
  ""
2031 2 marcel
-fargument-alias  ;   Cc  NONE  ""
2032
  ""
2033
-fargument-noalias  ;   Cc  NONE  ""
2034
  ""
2035
-fargument-noalias-global ;   Cc  NONE  ""
2036
  ""
2037
-fleading-underscore  ;   Cc  NONE  ""
2038
  ""
2039
%%% Linker Options
2040 83 marcel
-nostartfiles ;   LINK  ld  self
2041
  "Do not use standard system startup files when linking"
2042
-nodefaultlibs  ;   LINK  ld  self
2043
  "Do not use standard system libraries when linking"
2044 1950 laijx
--sysroot%D ;   Cc,as,CPP ld  "--sysroot %D -isysroot %D"
2045 1411 laijx
  ""
2046 83 marcel
%-Xlinker%- warn_no_longer_supported2(option_name,"-Wl,");    LINK  ld  "-Xlinker %s"
2047
% ""
2048 1950 laijx
% KEY Call dedicated code to handle -Xlinker since generic code does not
2049 83 marcel
% like the arg string to begin with -.
2050
-Xlinker* ; LINK  ld  ""
2051 2 marcel
  ""
2052
-symbolic ;   LINK  ld  self
2053
  ""
2054 71 marcel
-shared-libgcc  ; LINK  ld  self
2055
  "Force the use of the shared libgcc library"
2056
-static-libgcc  ; LINK  ld  self
2057
  "Force the use of the static libgcc library"
2058 2 marcel
%%% Directory Options
2059 1950 laijx
-I-   ;   ALL CPP self
2060 2 marcel
  ""
2061
-specs=%s warn_ignored(option_name);    ALL NONE  self
2062
  ""
2063
%%% Target Options
2064
-b%s  warn_ignored(option_name);    ALL NONE  self
2065
  ""
2066
%%% 386-specific options
2067
-m386 warn_ignored(option_name);    ALL NONE  self
2068
  ""
2069
-malign-loops=%d  warn_ignored(option_name);  ALL NONE  self
2070
  ""
2071
-malign-jumps=%d  warn_ignored(option_name);  ALL NONE  self
2072
  ""
2073
-malign-functions=%d  warn_ignored(option_name);  ALL NONE  self
2074
  ""
2075 71 marcel
%%% x86 extensions
2076 2116 ycwu
-mmmx toggle(&mmx,TRUE);    ALL ALL ""
2077 71 marcel
  "Enable MMX extensions"
2078 2116 ycwu
-mno-mmx  toggle(&mmx,FALSE);toggle(&sse,FALSE);toggle(&sse2,FALSE);toggle(&sse3,FALSE);toggle(&sse4a,FALSE); ALL NONE  self
2079 71 marcel
  "Disable MMX extensions"
2080 2116 ycwu
-msse toggle(&mmx,TRUE);toggle(&sse,TRUE);    ALL ALL ""
2081 71 marcel
  "Enable SSE extensions"
2082 2116 ycwu
-mno-sse  toggle(&sse,FALSE);toggle(&sse2,FALSE);toggle(&sse3,FALSE);toggle(&sse4a,FALSE);  ALL be  ""
2083 1411 laijx
  "Disable SSE2/SSE3/SSE4a extensions"
2084 2116 ycwu
-msse2  toggle(&mmx,TRUE);toggle(&sse,TRUE);toggle(&sse2,TRUE);   ALL be  ""
2085 71 marcel
  "Enable SSE2 extensions"
2086 1411 laijx
-mno-sse2 toggle(&sse2,FALSE);toggle(&sse3,FALSE);toggle(&sse4a,FALSE); ALL be  ""
2087 745 fengzhou
  "Disable SSE2/SSE3 extensions"
2088 135 marcel
-msse3  toggle(&sse2,TRUE);toggle(&sse3,TRUE);  ALL be  ""
2089 83 marcel
  "Enable SSE3 extensions"
2090 135 marcel
-mno-sse3 toggle(&sse3,FALSE);  ALL be  ""
2091 83 marcel
  "Disable SSE3 extensions"
2092 135 marcel
-m3dnow   toggle(&m3dnow,TRUE); ALL be  ""
2093 71 marcel
  "Enable 3Dnow extensions"
2094 135 marcel
-mno-3dnow  toggle(&m3dnow,FALSE);  ALL be  ""
2095 71 marcel
  "Disable 3Dnow extensions"
2096 1411 laijx
-msse4a  toggle(&sse2,TRUE);toggle(&sse4a,TRUE);  ALL     be      ""
2097
        "Enable SSE4a extensions"
2098
-mno-sse4a       toggle(&sse4a,FALSE);    ALL     be      ""
2099
        "Disable SSE4a extensions"
2100 135 marcel
%%% x87
2101
-mx87-precision=%d  ; ALL be  "-TARG:x87-precision=%d"
2102
  "Specify the precision of x87 floating-point calculations (32/64/80-bit)"
2103 2 marcel
%%% ia-64 workaround
2104
-ma-step  ; ALL NONE  "-TARG:ma0_step=on -mb-step"
2105
  ""
2106
-mb-step  ; ALL NONE  ""
2107
  ""
2108
-mvolatile-asm-stop ; ALL NONE  "-CG:volatile_asm_stop=on"
2109
  ""
2110 83 marcel
% KEY: Because of limitation on derived flags, we repeat the -mcmodel=%s in the
2111
% implied list.  This is to find the parent flag so action is done.
2112
-mcmodel=%s set_memory_model(optargs);  ALL NONE  "-mcmodel=%s -TENV:mcmodel=%s"
2113
  "Set the memory model to use"
2114 135 marcel
-print-file-name=%s {execute_flag=FALSE; print_file_path(optargs, 0);}  ALL NONE  ""
2115 2 marcel
  ""
2116
-print-libgcc-file-name ; ALL NONE  "-print-file-name=libgcc.a"
2117
  ""
2118 1950 laijx
-print-multi-lib  {execute_flag=FALSE; print_multi_lib();} ALL NONE ""
2119 745 fengzhou
  "Print the mapping from multilib directory names to compiler switches that enable them."
2120 135 marcel
-print-prog-name=%s {execute_flag=FALSE; print_file_path(optargs, 1);}  ALL NONE  ""
2121 2 marcel
  ""
2122 83 marcel
-print-search-dirs  {show_search_path=TRUE; execute_flag=FALSE;}  ALL NONE  ""
2123
  "Print the installation directory and directories the compiler will search"
2124 1489 carrot
-fvar-tracking          ;       ALL             cfe     self
2125
        "Run variable tracking pass, for options compatibility only, ignored by Open64"
2126 1950 laijx
-fpreprocessed    ; Cc,as,CPP CPP,cfe self
2127 83 marcel
  "Tell preprocessor that input has already been preprocessed"
2128 1950 laijx
-fno-preprocessed   ; Cc,as,CPP CPP,cfe self
2129 83 marcel
  "Tell preprocessor that input has not already been preprocessed"
2130
 
2131 2 marcel
%%% gcc long option aliases
2132
--all-warnings  ; ALL NONE  "-Wall"
2133
  ""
2134
--ansi    ; ALL NONE  "-ansi"
2135
  ""
2136
--assemble  ; ALL NONE  "-S"
2137
  ""
2138
--assert%s  ; ALL NONE  "-A%s"
2139
  ""
2140
--comments  ; ALL NONE  "-C"
2141
  ""
2142
--compile ; ALL NONE  "-c"
2143
  ""
2144
--debug   ; ALL NONE  "-g"
2145
  ""
2146
% --debug%d ; ALL NONE  "-g%d"
2147
--define-macro%s  ; ALL NONE  "-D%s"
2148
  ""
2149
--dependencies  ; ALL NONE  "-M"
2150
  ""
2151 1483 ributzka
--dumpversion ; ALL NONE "-dumpversion"
2152
  ""
2153 2 marcel
--extra-warnings  ; ALL NONE  "-W"
2154
  ""
2155
--force-link%s  ; ALL NONE  "-u %s"
2156
  ""
2157
--imacros%s ; ALL NONE  "-imacros %s"
2158
  ""
2159
--include%s ; ALL NONE  "-include %s"
2160
  ""
2161
--include-barrier ; ALL NONE  "-I-"
2162
  ""
2163
--include-directory%D ; ALL NONE  "-I%D"
2164
  ""
2165
--include-directory-after%D ; ALL NONE  "-idirafter %D"
2166
  ""
2167
--include-prefix%s  ; ALL NONE  "-iprefix %s"
2168
  ""
2169
--include-with-prefix%D ; ALL NONE  "-iwithprefix %D"
2170
  ""
2171
--include-with-prefix-before%D  ; ALL NONE  "-iwithprefixbefore %D"
2172
  ""
2173
--library-directory%D ; ALL NONE  "-L%D"
2174
  ""
2175
--no-line-commands  ; ALL NONE  "-P"
2176
  ""
2177
--no-standard-includes  ; ALL NONE  "-nostdinc"
2178
  ""
2179
--no-standard-libraries ; ALL NONE  "-nostdlib"
2180
  ""
2181
--no-warnings ; ALL NONE  "-w"
2182
  ""
2183
--optimize  ; ALL NONE  "-O"
2184
  ""
2185
--output%s  ; ALL NONE  "-o %s"
2186
  ""
2187
--pedantic  ; ALL NONE  "-pedantic"
2188
  ""
2189
--pedantic-errors ; ALL NONE  "-pedantic-errors"
2190
  ""
2191
--pipe  ; ALL NONE  "-pipe"
2192
  ""
2193
--preprocess  ; ALL NONE  "-E"
2194
  ""
2195
% need to handle either <space>name or =name
2196
--print-file-name%s ; ALL NONE  "-print-file-name=%s"
2197
  ""
2198
--print-file-name=%s  ; ALL NONE  "-print-file-name=%s"
2199
  ""
2200
--print-libgcc-file-name  ; ALL NONE  "-print-file-name=libgcc.a"
2201
  ""
2202
--print-search-dirs ; ALL NONE  "-print-search-dirs"
2203
  ""
2204
--print-missing-file-dependencies ; ALL NONE  "-MG"
2205
  ""
2206 745 fengzhou
--print-multi-lib ; ALL NONE  "-print-multi-lib"
2207
  ""
2208 2 marcel
--print-prog-name%s ; ALL NONE  "-print-prog-name=%s"
2209
  ""
2210
--print-prog-name=%s  ; ALL NONE  "-print-prog-name=%s"
2211
  ""
2212
--profile ; ALL NONE  "-p"
2213
  ""
2214
--save-temps  ; ALL NONE  "-save-temps"
2215
  ""
2216
--shared  ; ALL NONE  "-shared"
2217
  ""
2218
--specs%s ; ALL NONE  "-specs=%s"
2219
  ""
2220
--specs=%s  ; ALL NONE  "-specs=%s"
2221
  ""
2222
--static  ; LINK  ld  self
2223
  ""
2224
--symbolic  ; ALL NONE  "-symbolic"
2225
  ""
2226
--target%s  ; ALL NONE  "-b%s"
2227
  ""
2228
--trace-includes  ; ALL NONE  "-H"
2229
  ""
2230
--traditional ; ALL NONE  "-traditional"
2231
  ""
2232
--traditional-cpp ; ALL NONE  "-traditional-cpp"
2233
  ""
2234
--trigraphs ; ALL NONE  "-trigraphs"
2235
  ""
2236
--undefine-macro%s  ; ALL NONE  "-U%s"
2237
  ""
2238
--user-dependencies ; ALL NONE  "-MM"
2239
  ""
2240
--verbose ; ALL NONE  "-v"
2241
  ""
2242 71 marcel
--version ; ALL NONE  "-version"
2243
  ""
2244 2 marcel
--write-dependencies  ; ALL NONE  "-MD"
2245
  ""
2246
--write-user-dependencies ; ALL NONE  "-MMD"
2247
  ""
2248 1950 laijx
#ifndef NO_LICENSE /* licensing not used */
2249 71 marcel
-subverbose subverbose=1; ALL   NONE  "-subverbose"
2250 135 marcel
  "Print diagnostic information about subscription management"
2251 1950 laijx
#endif
2252 83 marcel
-pthread  ; ALL NONE  ""
2253
  "Compile with pthreads support"
2254 71 marcel
% gcc compatibility flags
2255 135 marcel
-compat-gcc toggle(&compat_gcc,TRUE); ALL NONE  ""
2256 83 marcel
  ""
2257 71 marcel
-Wabi   warn_ignored(option_name);  ALL cfe self  ""
2258
  ""
2259 83 marcel
-###    {show_version++; show_but_not_run = TRUE;}  ALL NONE  "-###"
2260 71 marcel
  "Like -v, only nothing is run and args are quoted"
2261
-rdynamic     ;   LINK  ld  "-Wl,--export-dynamic"
2262
  ""
2263 1489 carrot
-Bsymbolic      ;       LINK     ld        self
2264
        "Let the linker to resolve as many symbols as possible at link time"
2265 135 marcel
% KEY The driver ignores options by changing them into -dummy, which does
2266
% nothing.
2267
-dummy  ;   ALL NONE  ""
2268
  ""
2269 1950 laijx
#ifdef TARG_NVISA
2270
-multicore  ; Cc  NONE  "-PHASE:clist -CLIST:=ON"
2271
  ""
2272
-comic  ;   Cc  NONE  "-multicore -PHASE:clist -CLIST:=ON"
2273
  ""
2274
#endif