remove useless unused attributes in i386 code
[official-gcc.git] / gcc / config / arm / arm.opt
blob0a80513e70ff1a210d3ad56971b7f42911d02f54
1 ; Options for the ARM port of the compiler.
3 ; Copyright (C) 2005-2014 Free Software Foundation, Inc.
5 ; This file is part of GCC.
7 ; GCC is free software; you can redistribute it and/or modify it under
8 ; the terms of the GNU General Public License as published by the Free
9 ; Software Foundation; either version 3, or (at your option) any later
10 ; version.
12 ; GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13 ; WARRANTY; without even the implied warranty of MERCHANTABILITY or
14 ; FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15 ; for more details.
17 ; You should have received a copy of the GNU General Public License
18 ; along with GCC; see the file COPYING3.  If not see
19 ; <http://www.gnu.org/licenses/>.
21 HeaderInclude
22 config/arm/arm-opts.h
24 Enum
25 Name(tls_type) Type(enum arm_tls_type)
26 TLS dialect to use:
28 EnumValue
29 Enum(tls_type) String(gnu) Value(TLS_GNU)
31 EnumValue
32 Enum(tls_type) String(gnu2) Value(TLS_GNU2)
34 mabi=
35 Target RejectNegative Joined Enum(arm_abi_type) Var(arm_abi) Init(ARM_DEFAULT_ABI)
36 Specify an ABI
38 Enum
39 Name(arm_abi_type) Type(enum arm_abi_type)
40 Known ARM ABIs (for use with the -mabi= option):
42 EnumValue
43 Enum(arm_abi_type) String(apcs-gnu) Value(ARM_ABI_APCS)
45 EnumValue
46 Enum(arm_abi_type) String(atpcs) Value(ARM_ABI_ATPCS)
48 EnumValue
49 Enum(arm_abi_type) String(aapcs) Value(ARM_ABI_AAPCS)
51 EnumValue
52 Enum(arm_abi_type) String(iwmmxt) Value(ARM_ABI_IWMMXT)
54 EnumValue
55 Enum(arm_abi_type) String(aapcs-linux) Value(ARM_ABI_AAPCS_LINUX)
57 mabort-on-noreturn
58 Target Report Mask(ABORT_NORETURN)
59 Generate a call to abort if a noreturn function returns
61 mapcs
62 Target RejectNegative Mask(APCS_FRAME) Undocumented
64 mapcs-float
65 Target Report Mask(APCS_FLOAT)
66 Pass FP arguments in FP registers
68 mapcs-frame
69 Target Report Mask(APCS_FRAME)
70 Generate APCS conformant stack frames
72 mapcs-reentrant
73 Target Report Mask(APCS_REENT)
74 Generate re-entrant, PIC code
76 mapcs-stack-check
77 Target Report Mask(APCS_STACK) Undocumented
79 march=
80 Target RejectNegative ToLower Joined Enum(arm_arch) Var(arm_arch_option)
81 Specify the name of the target architecture
83 ; Other arm_arch values are loaded from arm-tables.opt
84 ; but that is a generated file and this is an odd-one-out.
85 EnumValue
86 Enum(arm_arch) String(native) Value(-1) DriverOnly
88 marm
89 Target Report RejectNegative InverseMask(THUMB)
90 Generate code in 32 bit ARM state.
92 mbig-endian
93 Target Report RejectNegative Mask(BIG_END)
94 Assume target CPU is configured as big endian
96 mcallee-super-interworking
97 Target Report Mask(CALLEE_INTERWORKING)
98 Thumb: Assume non-static functions may be called from ARM code
100 mcaller-super-interworking
101 Target Report Mask(CALLER_INTERWORKING)
102 Thumb: Assume function pointers may go to non-Thumb aware code
104 mcpu=
105 Target RejectNegative ToLower Joined Enum(processor_type) Var(arm_cpu_option) Init(arm_none)
106 Specify the name of the target CPU
108 mfloat-abi=
109 Target RejectNegative Joined Enum(float_abi_type) Var(arm_float_abi) Init(TARGET_DEFAULT_FLOAT_ABI)
110 Specify if floating point hardware should be used
112 Enum
113 Name(float_abi_type) Type(enum float_abi_type)
114 Known floating-point ABIs (for use with the -mfloat-abi= option):
116 EnumValue
117 Enum(float_abi_type) String(soft) Value(ARM_FLOAT_ABI_SOFT)
119 EnumValue
120 Enum(float_abi_type) String(softfp) Value(ARM_FLOAT_ABI_SOFTFP)
122 EnumValue
123 Enum(float_abi_type) String(hard) Value(ARM_FLOAT_ABI_HARD)
125 mfp16-format=
126 Target RejectNegative Joined Enum(arm_fp16_format_type) Var(arm_fp16_format) Init(ARM_FP16_FORMAT_NONE)
127 Specify the __fp16 floating-point format
129 Enum
130 Name(arm_fp16_format_type) Type(enum arm_fp16_format_type)
131 Known __fp16 formats (for use with the -mfp16-format= option):
133 EnumValue
134 Enum(arm_fp16_format_type) String(none) Value(ARM_FP16_FORMAT_NONE)
136 EnumValue
137 Enum(arm_fp16_format_type) String(ieee) Value(ARM_FP16_FORMAT_IEEE)
139 EnumValue
140 Enum(arm_fp16_format_type) String(alternative) Value(ARM_FP16_FORMAT_ALTERNATIVE)
142 mfpu=
143 Target RejectNegative Joined Enum(arm_fpu) Var(arm_fpu_index)
144 Specify the name of the target floating point hardware/format
146 mlra
147 Target Report Var(arm_lra_flag) Init(1) Save
148 Use LRA instead of reload (transitional)
150 mhard-float
151 Target RejectNegative Alias(mfloat-abi=, hard) Undocumented
153 mlittle-endian
154 Target Report RejectNegative InverseMask(BIG_END)
155 Assume target CPU is configured as little endian
157 mlong-calls
158 Target Report Mask(LONG_CALLS)
159 Generate call insns as indirect calls, if necessary
161 mpic-data-is-text-relative
162 Target Report Var(arm_pic_data_is_text_relative) Init(TARGET_DEFAULT_PIC_DATA_IS_TEXT_RELATIVE)
163 Assume data segments are relative to text segment.
165 mpic-register=
166 Target RejectNegative Joined Var(arm_pic_register_string)
167 Specify the register to be used for PIC addressing
169 mpoke-function-name
170 Target Report Mask(POKE_FUNCTION_NAME)
171 Store function names in object code
173 msched-prolog
174 Target Report Mask(SCHED_PROLOG)
175 Permit scheduling of a function's prologue sequence
177 msingle-pic-base
178 Target Report Mask(SINGLE_PIC_BASE)
179 Do not load the PIC register in function prologues
181 msoft-float
182 Target RejectNegative Alias(mfloat-abi=, soft) Undocumented
184 mstructure-size-boundary=
185 Target RejectNegative Joined UInteger Var(arm_structure_size_boundary) Init(DEFAULT_STRUCTURE_SIZE_BOUNDARY)
186 Specify the minimum bit alignment of structures
188 mthumb
189 Target Report RejectNegative Mask(THUMB)
190 Generate code for Thumb state
192 mthumb-interwork
193 Target Report Mask(INTERWORK)
194 Support calls between Thumb and ARM instruction sets
196 mtls-dialect=
197 Target RejectNegative Joined Enum(tls_type) Var(target_tls_dialect) Init(TLS_GNU)
198 Specify thread local storage scheme
200 mtp=
201 Target RejectNegative Joined Enum(arm_tp_type) Var(target_thread_pointer) Init(TP_AUTO)
202 Specify how to access the thread pointer
204 Enum
205 Name(arm_tp_type) Type(enum arm_tp_type)
206 Valid arguments to -mtp=:
208 EnumValue
209 Enum(arm_tp_type) String(soft) Value(TP_SOFT)
211 EnumValue
212 Enum(arm_tp_type) String(auto) Value(TP_AUTO)
214 EnumValue
215 Enum(arm_tp_type) String(cp15) Value(TP_CP15)
217 mtpcs-frame
218 Target Report Mask(TPCS_FRAME)
219 Thumb: Generate (non-leaf) stack frames even if not needed
221 mtpcs-leaf-frame
222 Target Report Mask(TPCS_LEAF_FRAME)
223 Thumb: Generate (leaf) stack frames even if not needed
225 mtune=
226 Target RejectNegative ToLower Joined Enum(processor_type) Var(arm_tune_option) Init(arm_none)
227 Tune code for the given processor
229 ; Other processor_type values are loaded from arm-tables.opt
230 ; but that is a generated file and this is an odd-one-out.
231 EnumValue
232 Enum(processor_type) String(native) Value(-1) DriverOnly
234 mvectorize-with-neon-quad
235 Target Report RejectNegative InverseMask(NEON_VECTORIZE_DOUBLE)
236 Use Neon quad-word (rather than double-word) registers for vectorization
238 mvectorize-with-neon-double
239 Target Report RejectNegative Mask(NEON_VECTORIZE_DOUBLE)
240 Use Neon double-word (rather than quad-word) registers for vectorization
242 mword-relocations
243 Target Report Var(target_word_relocations) Init(TARGET_DEFAULT_WORD_RELOCATIONS)
244 Only generate absolute relocations on word sized values.
246 mrestrict-it
247 Target Report Var(arm_restrict_it) Init(2)
248 Generate IT blocks appropriate for ARMv8.
250 mold-rtx-costs
251 Target Report Mask(OLD_RTX_COSTS)
252 Use the old RTX costing tables (transitional).
254 mnew-generic-costs
255 Target Report Mask(NEW_GENERIC_COSTS)
256 Use the new generic RTX cost tables if new core-specific cost table not available (transitional).
258 mfix-cortex-m3-ldrd
259 Target Report Var(fix_cm3_ldrd) Init(2)
260 Avoid overlapping destination and address registers on LDRD instructions
261 that may trigger Cortex-M3 errata.
263 munaligned-access
264 Target Report Var(unaligned_access) Init(2)
265 Enable unaligned word and halfword accesses to packed data.
267 mneon-for-64bits
268 Target Report RejectNegative Var(use_neon_for_64bits) Init(0)
269 Use Neon to perform 64-bits operations rather than core registers.
271 mslow-flash-data
272 Target Report Var(target_slow_flash_data) Init(0)
273 Assume loading data from flash is slower than fetching instructions.