OSDN Git Service

* config/rs6000/rs6000.c (rs6000_issue_rate): Don't artificially
[pf3gnuchains/gcc-fork.git] / gcc / config / rs6000 / rs6000.opt
1 ; Options for the rs6000 port of the compiler
2 ;
3 ; Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
4 ; Contributed by Aldy Hernandez <aldy@quesejoda.com>.
5 ;
6 ; This file is part of GCC.
7 ;
8 ; GCC is free software; you can redistribute it and/or modify it under
9 ; the terms of the GNU General Public License as published by the Free
10 ; Software Foundation; either version 3, or (at your option) any later
11 ; version.
12 ;
13 ; GCC is distributed in the hope that it will be useful, but WITHOUT
14 ; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15 ; or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
16 ; License for more details.
17 ;
18 ; You should have received a copy of the GNU General Public License
19 ; along with GCC; see the file COPYING3.  If not see
20 ; <http://www.gnu.org/licenses/>.
21
22 mpower
23 Target Report RejectNegative Mask(POWER)
24 Use POWER instruction set
25
26 mno-power
27 Target Report RejectNegative
28 Do not use POWER instruction set
29
30 mpower2
31 Target Report Mask(POWER2)
32 Use POWER2 instruction set
33
34 mpowerpc
35 Target Report RejectNegative Mask(POWERPC)
36 Use PowerPC instruction set
37
38 mno-powerpc
39 Target Report RejectNegative
40 Do not use PowerPC instruction set
41
42 mpowerpc64
43 Target Report Mask(POWERPC64)
44 Use PowerPC-64 instruction set
45
46 mpowerpc-gpopt
47 Target Report Mask(PPC_GPOPT)
48 Use PowerPC General Purpose group optional instructions
49
50 mpowerpc-gfxopt
51 Target Report Mask(PPC_GFXOPT)
52 Use PowerPC Graphics group optional instructions
53
54 mmfcrf
55 Target Report Mask(MFCRF)
56 Use PowerPC V2.01 single field mfcr instruction
57
58 mpopcntb
59 Target Report Mask(POPCNTB)
60 Use PowerPC V2.02 popcntb instruction
61
62 mfprnd
63 Target Report Mask(FPRND)
64 Use PowerPC V2.02 floating point rounding instructions
65
66 mcmpb
67 Target Report Mask(CMPB)
68 Use PowerPC V2.05 compare bytes instruction
69
70 mmfpgpr
71 Target Report Mask(MFPGPR)
72 Use extended PowerPC V2.05 move floating point to/from GPR instructions
73
74 maltivec
75 Target Report Mask(ALTIVEC)
76 Use AltiVec instructions
77
78 mhard-dfp
79 Target Report Mask(DFP)
80 Use decimal floating point instructions
81
82 mmulhw
83 Target Report Mask(MULHW)
84 Use 4xx half-word multiply instructions
85
86 mdlmzb
87 Target Report Mask(DLMZB)
88 Use 4xx string-search dlmzb instruction
89
90 mmultiple
91 Target Report Mask(MULTIPLE)
92 Generate load/store multiple instructions
93
94 mstring
95 Target Report Mask(STRING)
96 Generate string instructions for block moves
97
98 mnew-mnemonics
99 Target Report RejectNegative Mask(NEW_MNEMONICS)
100 Use new mnemonics for PowerPC architecture
101
102 mold-mnemonics
103 Target Report RejectNegative InverseMask(NEW_MNEMONICS)
104 Use old mnemonics for PowerPC architecture
105
106 msoft-float
107 Target Report RejectNegative Mask(SOFT_FLOAT)
108 Do not use hardware floating point
109
110 mhard-float
111 Target Report RejectNegative InverseMask(SOFT_FLOAT, HARD_FLOAT)
112 Use hardware floating point
113
114 mpopcntd
115 Target Report Mask(POPCNTD)
116 Use PowerPC V2.06 popcntd instruction
117
118 mvsx
119 Target Report Mask(VSX)
120 Use vector/scalar (VSX) instructions
121
122 mvsx-scalar-double
123 Target Undocumented Report Var(TARGET_VSX_SCALAR_DOUBLE) Init(-1)
124 ; If -mvsx, use VSX arithmetic instructions for scalar double (on by default)
125
126 mvsx-scalar-memory
127 Target Undocumented Report Var(TARGET_VSX_SCALAR_MEMORY)
128 ; If -mvsx, use VSX scalar memory reference instructions for scalar double (off by default)
129
130 mvsx-align-128
131 Target Undocumented Report Var(TARGET_VSX_ALIGN_128)
132 ; If -mvsx, set alignment to 128 bits instead of 32/64
133
134 mallow-movmisalign
135 Target Undocumented Var(TARGET_ALLOW_MOVMISALIGN) Init(-1)
136 ; Allow/disallow the movmisalign in DF/DI vectors
137
138 mallow-df-permute
139 Target Undocumented Var(TARGET_ALLOW_DF_PERMUTE)
140 ; Allow/disallow permutation of DF/DI vectors
141
142 msched-groups
143 Target Undocumented Report Var(TARGET_SCHED_GROUPS) Init(-1)
144 ; Explicitly set/unset whether rs6000_sched_groups is set
145
146 malways-hint
147 Target Undocumented Report Var(TARGET_ALWAYS_HINT) Init(-1)
148 ; Explicitly set/unset whether rs6000_always_hint is set
149
150 malign-branch-targets
151 Target Undocumented Report Var(TARGET_ALIGN_BRANCH_TARGETS) Init(-1)
152 ; Explicitly set/unset whether rs6000_align_branch_targets is set
153
154 mvectorize-builtins
155 Target Undocumented Report Var(TARGET_VECTORIZE_BUILTINS) Init(-1)
156 ; Explicitly control whether we vectorize the builtins or not.
157
158 mupdate
159 Target Report Var(TARGET_UPDATE) Init(1)
160 Generate load/store with update instructions
161
162 mavoid-indexed-addresses
163 Target Report Var(TARGET_AVOID_XFORM) Init(-1)
164 Avoid generation of indexed load/store instructions when possible
165
166 mfused-madd
167 Target Report Var(TARGET_FUSED_MADD) Init(1)
168 Generate fused multiply/add instructions
169
170 mtls-markers
171 Target Report Var(tls_markers) Init(1)
172 Mark __tls_get_addr calls with argument info
173
174 msched-epilog
175 Target Undocumented Var(TARGET_SCHED_PROLOG) Init(1)
176
177 msched-prolog
178 Target Report Var(TARGET_SCHED_PROLOG) VarExists
179 Schedule the start and end of the procedure
180
181 maix-struct-return
182 Target Report RejectNegative Var(aix_struct_return)
183 Return all structures in memory (AIX default)
184
185 msvr4-struct-return
186 Target Report RejectNegative Var(aix_struct_return,0) VarExists
187 Return small structures in registers (SVR4 default)
188
189 mxl-compat
190 Target Report Var(TARGET_XL_COMPAT)
191 Conform more closely to IBM XLC semantics
192
193 mrecip
194 Target Report Var(TARGET_RECIP)
195 Generate software reciprocal sqrt for better throughput
196
197 mno-fp-in-toc
198 Target Report RejectNegative Var(TARGET_NO_FP_IN_TOC)
199 Do not place floating point constants in TOC
200
201 mfp-in-toc
202 Target Report RejectNegative Var(TARGET_NO_FP_IN_TOC,0)
203 Place floating point constants in TOC
204
205 mno-sum-in-toc
206 Target RejectNegative Var(TARGET_NO_SUM_IN_TOC)
207 Do not place symbol+offset constants in TOC
208
209 msum-in-toc
210 Target RejectNegative Var(TARGET_NO_SUM_IN_TOC,0) VarExists
211 Place symbol+offset constants in TOC
212
213 ;  Output only one TOC entry per module.  Normally linking fails if
214 ;   there are more than 16K unique variables/constants in an executable.  With
215 ;   this option, linking fails only if there are more than 16K modules, or
216 ;   if there are more than 16K unique variables/constant in a single module.
217 ;
218 ;   This is at the cost of having 2 extra loads and one extra store per
219 ;   function, and one less allocable register.
220 mminimal-toc
221 Target Report Mask(MINIMAL_TOC)
222 Use only one TOC entry per procedure
223
224 mfull-toc
225 Target Report
226 Put everything in the regular TOC
227
228 mvrsave
229 Target Report Var(TARGET_ALTIVEC_VRSAVE)
230 Generate VRSAVE instructions when generating AltiVec code
231
232 mvrsave=
233 Target RejectNegative Joined
234 -mvrsave=yes/no Deprecated option.  Use -mvrsave/-mno-vrsave instead
235
236 misel
237 Target Report Mask(ISEL)
238 Generate isel instructions
239
240 misel=
241 Target RejectNegative Joined
242 -misel=yes/no   Deprecated option.  Use -misel/-mno-isel instead
243
244 mspe
245 Target
246 Generate SPE SIMD instructions on E500
247
248 mpaired
249 Target Var(rs6000_paired_float)
250 Generate PPC750CL paired-single instructions
251
252 mspe=
253 Target RejectNegative Joined
254 -mspe=yes/no    Deprecated option.  Use -mspe/-mno-spe instead
255
256 mdebug=
257 Target RejectNegative Joined
258 -mdebug=        Enable debug output
259
260 mabi=
261 Target RejectNegative Joined
262 -mabi=  Specify ABI to use
263
264 mcpu=
265 Target RejectNegative Joined
266 -mcpu=  Use features of and schedule code for given CPU
267
268 mtune=
269 Target RejectNegative Joined
270 -mtune= Schedule code for given CPU
271
272 mtraceback=
273 Target RejectNegative Joined
274 -mtraceback=    Select full, part, or no traceback table
275
276 mlongcall
277 Target Report Var(rs6000_default_long_calls)
278 Avoid all range limits on call instructions
279
280 mgen-cell-microcode
281 Target Report Var(rs6000_gen_cell_microcode) Init(-1)
282 Generate Cell microcode
283
284 mwarn-cell-microcode
285 Target Var(rs6000_warn_cell_microcode) Init(0) Warning
286 Warn when a Cell microcoded instruction is emitted
287
288 mwarn-altivec-long
289 Target Var(rs6000_warn_altivec_long) Init(1)
290 Warn about deprecated 'vector long ...' AltiVec type usage
291
292 mfloat-gprs=
293 Target RejectNegative Joined
294 -mfloat-gprs=   Select GPR floating point method
295
296 mlong-double-
297 Target RejectNegative Joined UInteger
298 -mlong-double-<n>       Specify size of long double (64 or 128 bits)
299
300 msched-costly-dep=
301 Target RejectNegative Joined 
302 Determine which dependences between insns are considered costly
303
304 minsert-sched-nops=
305 Target RejectNegative Joined
306 Specify which post scheduling nop insertion scheme to apply
307
308 malign-
309 Target RejectNegative Joined
310 Specify alignment of structure fields default/natural
311
312 mprioritize-restricted-insns=
313 Target RejectNegative Joined UInteger Var(rs6000_sched_restricted_insns_priority)
314 Specify scheduling priority for dispatch slot restricted insns
315
316 msingle-float
317 Target RejectNegative Var(rs6000_single_float)
318 Single-precision floating point unit
319
320 mdouble-float
321 Target RejectNegative Var(rs6000_double_float)
322 Double-precision floating point unit
323
324 msimple-fpu
325 Target RejectNegative Var(rs6000_simple_fpu)
326 Floating point unit does not support divide & sqrt
327
328 mfpu=
329 Target RejectNegative Joined 
330 -mfpu=  Specify FP (sp, dp, sp-lite, dp-lite) (implies -mxilinx-fpu)
331
332 mxilinx-fpu
333 Target Var(rs6000_xilinx_fpu)
334 Specify Xilinx FPU.
335
336