2010-07-27 Paolo Carlini <paolo.carlini@oracle.com>
[official-gcc/alias-decl.git] / gcc / config / rs6000 / rs6000.opt
blob30f9b3988c0ed33b41d2a02ce8422224426ed3df
1 ; Options for the rs6000 port of the compiler
3 ; Copyright (C) 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
4 ; Contributed by Aldy Hernandez <aldy@quesejoda.com>.
6 ; This file is part of GCC.
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.
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.
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/>.
22 mpower
23 Target Report RejectNegative Mask(POWER)
24 Use POWER instruction set
26 mno-power
27 Target Report RejectNegative
28 Do not use POWER instruction set
30 mpower2
31 Target Report Mask(POWER2)
32 Use POWER2 instruction set
34 mpowerpc
35 Target Report RejectNegative Mask(POWERPC)
36 Use PowerPC instruction set
38 mno-powerpc
39 Target Report RejectNegative
40 Do not use PowerPC instruction set
42 mpowerpc64
43 Target Report Mask(POWERPC64)
44 Use PowerPC-64 instruction set
46 mpowerpc-gpopt
47 Target Report Mask(PPC_GPOPT)
48 Use PowerPC General Purpose group optional instructions
50 mpowerpc-gfxopt
51 Target Report Mask(PPC_GFXOPT)
52 Use PowerPC Graphics group optional instructions
54 mmfcrf
55 Target Report Mask(MFCRF)
56 Use PowerPC V2.01 single field mfcr instruction
58 mpopcntb
59 Target Report Mask(POPCNTB)
60 Use PowerPC V2.02 popcntb instruction
62 mfprnd
63 Target Report Mask(FPRND)
64 Use PowerPC V2.02 floating point rounding instructions
66 mcmpb
67 Target Report Mask(CMPB)
68 Use PowerPC V2.05 compare bytes instruction
70 mmfpgpr
71 Target Report Mask(MFPGPR)
72 Use extended PowerPC V2.05 move floating point to/from GPR instructions
74 maltivec
75 Target Report Mask(ALTIVEC)
76 Use AltiVec instructions
78 mhard-dfp
79 Target Report Mask(DFP)
80 Use decimal floating point instructions
82 mmulhw
83 Target Report Mask(MULHW)
84 Use 4xx half-word multiply instructions
86 mdlmzb
87 Target Report Mask(DLMZB)
88 Use 4xx string-search dlmzb instruction
90 mmultiple
91 Target Report Mask(MULTIPLE)
92 Generate load/store multiple instructions
94 mstring
95 Target Report Mask(STRING)
96 Generate string instructions for block moves
98 mnew-mnemonics
99 Target Report RejectNegative Mask(NEW_MNEMONICS)
100 Use new mnemonics for PowerPC architecture
102 mold-mnemonics
103 Target Report RejectNegative InverseMask(NEW_MNEMONICS)
104 Use old mnemonics for PowerPC architecture
106 msoft-float
107 Target Report RejectNegative Mask(SOFT_FLOAT)
108 Do not use hardware floating point
110 mhard-float
111 Target Report RejectNegative InverseMask(SOFT_FLOAT, HARD_FLOAT)
112 Use hardware floating point
114 mpopcntd
115 Target Report Mask(POPCNTD)
116 Use PowerPC V2.06 popcntd instruction
118 mvsx
119 Target Report Mask(VSX)
120 Use vector/scalar (VSX) instructions
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)
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)
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
134 mallow-movmisalign
135 Target Undocumented Var(TARGET_ALLOW_MOVMISALIGN) Init(-1)
136 ; Allow/disallow the movmisalign in DF/DI vectors
138 mallow-df-permute
139 Target Undocumented Var(TARGET_ALLOW_DF_PERMUTE)
140 ; Allow/disallow permutation of DF/DI vectors
142 msched-groups
143 Target Undocumented Report Var(TARGET_SCHED_GROUPS) Init(-1)
144 ; Explicitly set/unset whether rs6000_sched_groups is set
146 malways-hint
147 Target Undocumented Report Var(TARGET_ALWAYS_HINT) Init(-1)
148 ; Explicitly set/unset whether rs6000_always_hint is set
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
154 mvectorize-builtins
155 Target Undocumented Report Var(TARGET_VECTORIZE_BUILTINS) Init(-1)
156 ; Explicitly control whether we vectorize the builtins or not.
158 mno-update
159 Target Report RejectNegative Mask(NO_UPDATE)
160 Do not generate load/store with update instructions
162 mupdate
163 Target Report RejectNegative InverseMask(NO_UPDATE, UPDATE)
164 Generate load/store with update instructions
166 mavoid-indexed-addresses
167 Target Report Var(TARGET_AVOID_XFORM) Init(-1)
168 Avoid generation of indexed load/store instructions when possible
170 mfused-madd
171 Target Report Var(TARGET_FUSED_MADD) Init(1)
172 Generate fused multiply/add instructions
174 mtls-markers
175 Target Report Var(tls_markers) Init(1)
176 Mark __tls_get_addr calls with argument info
178 msched-epilog
179 Target Undocumented Var(TARGET_SCHED_PROLOG) Init(1)
181 msched-prolog
182 Target Report Var(TARGET_SCHED_PROLOG) VarExists
183 Schedule the start and end of the procedure
185 maix-struct-return
186 Target Report RejectNegative Var(aix_struct_return)
187 Return all structures in memory (AIX default)
189 msvr4-struct-return
190 Target Report RejectNegative Var(aix_struct_return,0) VarExists
191 Return small structures in registers (SVR4 default)
193 mxl-compat
194 Target Report Var(TARGET_XL_COMPAT)
195 Conform more closely to IBM XLC semantics
197 mrecip
198 Target Report
199 Generate software reciprocal divide and square root for better throughput.
201 mrecip=
202 Target Report RejectNegative Joined
203 Generate software reciprocal divide and square root for better throughput.
205 mrecip-precision
206 Target Report Mask(RECIP_PRECISION)
207 Assume that the reciprocal estimate instructions provide more accuracy.
209 mno-fp-in-toc
210 Target Report RejectNegative Var(TARGET_NO_FP_IN_TOC)
211 Do not place floating point constants in TOC
213 mfp-in-toc
214 Target Report RejectNegative Var(TARGET_NO_FP_IN_TOC,0)
215 Place floating point constants in TOC
217 mno-sum-in-toc
218 Target RejectNegative Var(TARGET_NO_SUM_IN_TOC)
219 Do not place symbol+offset constants in TOC
221 msum-in-toc
222 Target RejectNegative Var(TARGET_NO_SUM_IN_TOC,0) VarExists
223 Place symbol+offset constants in TOC
225 ;  Output only one TOC entry per module.  Normally linking fails if
226 ;   there are more than 16K unique variables/constants in an executable.  With
227 ;   this option, linking fails only if there are more than 16K modules, or
228 ;   if there are more than 16K unique variables/constant in a single module.
230 ;   This is at the cost of having 2 extra loads and one extra store per
231 ;   function, and one less allocable register.
232 mminimal-toc
233 Target Report Mask(MINIMAL_TOC)
234 Use only one TOC entry per procedure
236 mfull-toc
237 Target Report
238 Put everything in the regular TOC
240 mvrsave
241 Target Report Var(TARGET_ALTIVEC_VRSAVE)
242 Generate VRSAVE instructions when generating AltiVec code
244 mvrsave=
245 Target RejectNegative Joined
246 -mvrsave=yes/no Deprecated option.  Use -mvrsave/-mno-vrsave instead
248 mblock-move-inline-limit=
249 Target Report Var(rs6000_block_move_inline_limit) Init(0) RejectNegative Joined UInteger
250 Specify how many bytes should be moved inline before calling out to memcpy/memmove
252 misel
253 Target Report Mask(ISEL)
254 Generate isel instructions
256 misel=
257 Target RejectNegative Joined
258 -misel=yes/no   Deprecated option.  Use -misel/-mno-isel instead
260 mspe
261 Target
262 Generate SPE SIMD instructions on E500
264 mpaired
265 Target Var(rs6000_paired_float)
266 Generate PPC750CL paired-single instructions
268 mspe=
269 Target RejectNegative Joined
270 -mspe=yes/no    Deprecated option.  Use -mspe/-mno-spe instead
272 mdebug=
273 Target RejectNegative Joined
274 -mdebug=        Enable debug output
276 mabi=
277 Target RejectNegative Joined
278 -mabi=  Specify ABI to use
280 mcpu=
281 Target RejectNegative Joined
282 -mcpu=  Use features of and schedule code for given CPU
284 mtune=
285 Target RejectNegative Joined
286 -mtune= Schedule code for given CPU
288 mtraceback=
289 Target RejectNegative Joined
290 -mtraceback=    Select full, part, or no traceback table
292 mlongcall
293 Target Report Var(rs6000_default_long_calls)
294 Avoid all range limits on call instructions
296 mgen-cell-microcode
297 Target Report Var(rs6000_gen_cell_microcode) Init(-1)
298 Generate Cell microcode
300 mwarn-cell-microcode
301 Target Var(rs6000_warn_cell_microcode) Init(0) Warning
302 Warn when a Cell microcoded instruction is emitted
304 mwarn-altivec-long
305 Target Var(rs6000_warn_altivec_long) Init(1)
306 Warn about deprecated 'vector long ...' AltiVec type usage
308 mfloat-gprs=
309 Target RejectNegative Joined
310 -mfloat-gprs=   Select GPR floating point method
312 mlong-double-
313 Target RejectNegative Joined UInteger
314 -mlong-double-<n>       Specify size of long double (64 or 128 bits)
316 msched-costly-dep=
317 Target RejectNegative Joined 
318 Determine which dependences between insns are considered costly
320 minsert-sched-nops=
321 Target RejectNegative Joined
322 Specify which post scheduling nop insertion scheme to apply
324 malign-
325 Target RejectNegative Joined
326 Specify alignment of structure fields default/natural
328 mprioritize-restricted-insns=
329 Target RejectNegative Joined UInteger Var(rs6000_sched_restricted_insns_priority)
330 Specify scheduling priority for dispatch slot restricted insns
332 msingle-float
333 Target RejectNegative Var(rs6000_single_float)
334 Single-precision floating point unit
336 mdouble-float
337 Target RejectNegative Var(rs6000_double_float)
338 Double-precision floating point unit
340 msimple-fpu
341 Target RejectNegative Var(rs6000_simple_fpu)
342 Floating point unit does not support divide & sqrt
344 mfpu=
345 Target RejectNegative Joined 
346 -mfpu=  Specify FP (sp, dp, sp-lite, dp-lite) (implies -mxilinx-fpu)
348 mxilinx-fpu
349 Target Var(rs6000_xilinx_fpu)
350 Specify Xilinx FPU.