2017-12-01 Richard Biener <rguenther@suse.de>
[official-gcc.git] / gcc / config / aarch64 / aarch64.opt
blob942a7d558f26f0c8c18b0a94f4f92c575e06f057
1 ; Machine description for AArch64 architecture.
2 ; Copyright (C) 2009-2017 Free Software Foundation, Inc.
3 ; Contributed by ARM Ltd.
5 ; This file is part of GCC.
7 ; GCC is free software; you can redistribute it and/or modify it
8 ; under the terms of the GNU General Public License as published by
9 ; the Free Software Foundation; either version 3, or (at your option)
10 ; any later version.
12 ; GCC is distributed in the hope that it will be useful, but
13 ; WITHOUT ANY WARRANTY; without even the implied warranty of
14 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 ; General Public License 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/aarch64/aarch64-opts.h
24 TargetVariable
25 enum aarch64_processor explicit_tune_core = aarch64_none
27 TargetVariable
28 enum aarch64_arch explicit_arch = aarch64_no_arch
30 TargetSave
31 const char *x_aarch64_override_tune_string
33 TargetVariable
34 unsigned long aarch64_isa_flags = 0
36 ; The TLS dialect names to use with -mtls-dialect.
38 Enum
39 Name(tls_type) Type(enum aarch64_tls_type)
40 The possible TLS dialects:
42 EnumValue
43 Enum(tls_type) String(trad) Value(TLS_TRADITIONAL)
45 EnumValue
46 Enum(tls_type) String(desc) Value(TLS_DESCRIPTORS)
48 ; The code model option names for -mcmodel.
50 Enum
51 Name(cmodel) Type(enum aarch64_code_model)
52 The code model option names for -mcmodel:
54 EnumValue
55 Enum(cmodel) String(tiny) Value(AARCH64_CMODEL_TINY)
57 EnumValue
58 Enum(cmodel) String(small) Value(AARCH64_CMODEL_SMALL)
60 EnumValue
61 Enum(cmodel) String(large) Value(AARCH64_CMODEL_LARGE)
63 mbig-endian
64 Target Report RejectNegative Mask(BIG_END)
65 Assume target CPU is configured as big endian.
67 mgeneral-regs-only
68 Target Report RejectNegative Mask(GENERAL_REGS_ONLY) Save
69 Generate code which uses only the general registers.
71 mfix-cortex-a53-835769
72 Target Report Var(aarch64_fix_a53_err835769) Init(2) Save
73 Workaround for ARM Cortex-A53 Erratum number 835769.
75 mfix-cortex-a53-843419
76 Target Report Var(aarch64_fix_a53_err843419) Init(2) Save
77 Workaround for ARM Cortex-A53 Erratum number 843419.
79 mlittle-endian
80 Target Report RejectNegative InverseMask(BIG_END)
81 Assume target CPU is configured as little endian.
83 mcmodel=
84 Target RejectNegative Joined Enum(cmodel) Var(aarch64_cmodel_var) Init(AARCH64_CMODEL_SMALL) Save
85 Specify the code model.
87 mstrict-align
88 Target Report RejectNegative Mask(STRICT_ALIGN) Save
89 Don't assume that unaligned accesses are handled by the system.
91 momit-leaf-frame-pointer
92 Target Report Var(flag_omit_leaf_frame_pointer) Init(2) Save
93 Omit the frame pointer in leaf functions.
95 mtls-dialect=
96 Target RejectNegative Joined Enum(tls_type) Var(aarch64_tls_dialect) Init(TLS_DESCRIPTORS) Save
97 Specify TLS dialect.
99 mtls-size=
100 Target RejectNegative Joined Var(aarch64_tls_size) Enum(aarch64_tls_size)
101 Specifies bit size of immediate TLS offsets.  Valid values are 12, 24, 32, 48.
103 Enum
104 Name(aarch64_tls_size) Type(int)
106 EnumValue
107 Enum(aarch64_tls_size) String(12) Value(12)
109 EnumValue
110 Enum(aarch64_tls_size) String(24) Value(24)
112 EnumValue
113 Enum(aarch64_tls_size) String(32) Value(32)
115 EnumValue
116 Enum(aarch64_tls_size) String(48) Value(48)
118 march=
119 Target RejectNegative ToLower Joined Var(aarch64_arch_string)
120 -march=ARCH     Use features of architecture ARCH.
122 mcpu=
123 Target RejectNegative ToLower Joined Var(aarch64_cpu_string)
124 -mcpu=CPU       Use features of and optimize for CPU.
126 mtune=
127 Target RejectNegative ToLower Joined Var(aarch64_tune_string)
128 -mtune=CPU      Optimize for CPU.
130 mabi=
131 Target RejectNegative Joined Enum(aarch64_abi) Var(aarch64_abi) Init(AARCH64_ABI_DEFAULT)
132 -mabi=ABI       Generate code that conforms to the specified ABI.
134 moverride=
135 Target RejectNegative ToLower Joined Var(aarch64_override_tune_string)
136 -moverride=STRING       Power users only! Override CPU optimization parameters.
138 Enum
139 Name(aarch64_abi) Type(int)
140 Known AArch64 ABIs (for use with the -mabi= option):
142 EnumValue
143 Enum(aarch64_abi) String(ilp32) Value(AARCH64_ABI_ILP32)
145 EnumValue
146 Enum(aarch64_abi) String(lp64) Value(AARCH64_ABI_LP64)
148 mpc-relative-literal-loads
149 Target Report Save Var(pcrelative_literal_loads) Init(2) Save
150 PC relative literal loads.
152 msign-return-address=
153 Target RejectNegative Report Joined Enum(aarch64_ra_sign_scope_t) Var(aarch64_ra_sign_scope) Init(AARCH64_FUNCTION_NONE) Save
154 Select return address signing scope.
156 Enum
157 Name(aarch64_ra_sign_scope_t) Type(enum aarch64_function_type)
158 Supported AArch64 return address signing scope (for use with -msign-return-address= option):
160 EnumValue
161 Enum(aarch64_ra_sign_scope_t) String(none) Value(AARCH64_FUNCTION_NONE)
163 EnumValue
164 Enum(aarch64_ra_sign_scope_t) String(non-leaf) Value(AARCH64_FUNCTION_NON_LEAF)
166 EnumValue
167 Enum(aarch64_ra_sign_scope_t) String(all) Value(AARCH64_FUNCTION_ALL)
169 mlow-precision-recip-sqrt
170 Common Var(flag_mrecip_low_precision_sqrt) Optimization
171 Enable the reciprocal square root approximation.  Enabling this reduces
172 precision of reciprocal square root results to about 16 bits for
173 single precision and to 32 bits for double precision.
175 mlow-precision-sqrt
176 Common Var(flag_mlow_precision_sqrt) Optimization
177 Enable the square root approximation.  Enabling this reduces
178 precision of square root results to about 16 bits for
179 single precision and to 32 bits for double precision.
180 If enabled, it implies -mlow-precision-recip-sqrt.
182 mlow-precision-div
183 Common Var(flag_mlow_precision_div) Optimization
184 Enable the division approximation.  Enabling this reduces
185 precision of division results to about 16 bits for
186 single precision and to 32 bits for double precision.
188 mverbose-cost-dump
189 Common Undocumented Var(flag_aarch64_verbose_cost)
190 Enables verbose cost model dumping in the debug dump files.