annotate gcc/config/aarch64/aarch64.opt @ 131:84e7813d76e9

gcc-8.2
author mir3636
date Thu, 25 Oct 2018 07:37:49 +0900
parents 04ced10e8804
children 1830386684a0
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ; Machine description for AArch64 architecture.
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
2 ; Copyright (C) 2009-2018 Free Software Foundation, Inc.
111
kono
parents:
diff changeset
3 ; Contributed by ARM Ltd.
kono
parents:
diff changeset
4 ;
kono
parents:
diff changeset
5 ; This file is part of GCC.
kono
parents:
diff changeset
6 ;
kono
parents:
diff changeset
7 ; GCC is free software; you can redistribute it and/or modify it
kono
parents:
diff changeset
8 ; under the terms of the GNU General Public License as published by
kono
parents:
diff changeset
9 ; the Free Software Foundation; either version 3, or (at your option)
kono
parents:
diff changeset
10 ; any later version.
kono
parents:
diff changeset
11 ;
kono
parents:
diff changeset
12 ; GCC is distributed in the hope that it will be useful, but
kono
parents:
diff changeset
13 ; WITHOUT ANY WARRANTY; without even the implied warranty of
kono
parents:
diff changeset
14 ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
kono
parents:
diff changeset
15 ; General Public License for more details.
kono
parents:
diff changeset
16 ;
kono
parents:
diff changeset
17 ; You should have received a copy of the GNU General Public License
kono
parents:
diff changeset
18 ; along with GCC; see the file COPYING3. If not see
kono
parents:
diff changeset
19 ; <http://www.gnu.org/licenses/>.
kono
parents:
diff changeset
20
kono
parents:
diff changeset
21 HeaderInclude
kono
parents:
diff changeset
22 config/aarch64/aarch64-opts.h
kono
parents:
diff changeset
23
kono
parents:
diff changeset
24 TargetVariable
kono
parents:
diff changeset
25 enum aarch64_processor explicit_tune_core = aarch64_none
kono
parents:
diff changeset
26
kono
parents:
diff changeset
27 TargetVariable
kono
parents:
diff changeset
28 enum aarch64_arch explicit_arch = aarch64_no_arch
kono
parents:
diff changeset
29
kono
parents:
diff changeset
30 TargetSave
kono
parents:
diff changeset
31 const char *x_aarch64_override_tune_string
kono
parents:
diff changeset
32
kono
parents:
diff changeset
33 TargetVariable
kono
parents:
diff changeset
34 unsigned long aarch64_isa_flags = 0
kono
parents:
diff changeset
35
kono
parents:
diff changeset
36 ; The TLS dialect names to use with -mtls-dialect.
kono
parents:
diff changeset
37
kono
parents:
diff changeset
38 Enum
kono
parents:
diff changeset
39 Name(tls_type) Type(enum aarch64_tls_type)
kono
parents:
diff changeset
40 The possible TLS dialects:
kono
parents:
diff changeset
41
kono
parents:
diff changeset
42 EnumValue
kono
parents:
diff changeset
43 Enum(tls_type) String(trad) Value(TLS_TRADITIONAL)
kono
parents:
diff changeset
44
kono
parents:
diff changeset
45 EnumValue
kono
parents:
diff changeset
46 Enum(tls_type) String(desc) Value(TLS_DESCRIPTORS)
kono
parents:
diff changeset
47
kono
parents:
diff changeset
48 ; The code model option names for -mcmodel.
kono
parents:
diff changeset
49
kono
parents:
diff changeset
50 Enum
kono
parents:
diff changeset
51 Name(cmodel) Type(enum aarch64_code_model)
kono
parents:
diff changeset
52 The code model option names for -mcmodel:
kono
parents:
diff changeset
53
kono
parents:
diff changeset
54 EnumValue
kono
parents:
diff changeset
55 Enum(cmodel) String(tiny) Value(AARCH64_CMODEL_TINY)
kono
parents:
diff changeset
56
kono
parents:
diff changeset
57 EnumValue
kono
parents:
diff changeset
58 Enum(cmodel) String(small) Value(AARCH64_CMODEL_SMALL)
kono
parents:
diff changeset
59
kono
parents:
diff changeset
60 EnumValue
kono
parents:
diff changeset
61 Enum(cmodel) String(large) Value(AARCH64_CMODEL_LARGE)
kono
parents:
diff changeset
62
kono
parents:
diff changeset
63 mbig-endian
kono
parents:
diff changeset
64 Target Report RejectNegative Mask(BIG_END)
kono
parents:
diff changeset
65 Assume target CPU is configured as big endian.
kono
parents:
diff changeset
66
kono
parents:
diff changeset
67 mgeneral-regs-only
kono
parents:
diff changeset
68 Target Report RejectNegative Mask(GENERAL_REGS_ONLY) Save
kono
parents:
diff changeset
69 Generate code which uses only the general registers.
kono
parents:
diff changeset
70
kono
parents:
diff changeset
71 mfix-cortex-a53-835769
kono
parents:
diff changeset
72 Target Report Var(aarch64_fix_a53_err835769) Init(2) Save
kono
parents:
diff changeset
73 Workaround for ARM Cortex-A53 Erratum number 835769.
kono
parents:
diff changeset
74
kono
parents:
diff changeset
75 mfix-cortex-a53-843419
kono
parents:
diff changeset
76 Target Report Var(aarch64_fix_a53_err843419) Init(2) Save
kono
parents:
diff changeset
77 Workaround for ARM Cortex-A53 Erratum number 843419.
kono
parents:
diff changeset
78
kono
parents:
diff changeset
79 mlittle-endian
kono
parents:
diff changeset
80 Target Report RejectNegative InverseMask(BIG_END)
kono
parents:
diff changeset
81 Assume target CPU is configured as little endian.
kono
parents:
diff changeset
82
kono
parents:
diff changeset
83 mcmodel=
kono
parents:
diff changeset
84 Target RejectNegative Joined Enum(cmodel) Var(aarch64_cmodel_var) Init(AARCH64_CMODEL_SMALL) Save
kono
parents:
diff changeset
85 Specify the code model.
kono
parents:
diff changeset
86
kono
parents:
diff changeset
87 mstrict-align
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
88 Target Report Mask(STRICT_ALIGN) Save
111
kono
parents:
diff changeset
89 Don't assume that unaligned accesses are handled by the system.
kono
parents:
diff changeset
90
kono
parents:
diff changeset
91 momit-leaf-frame-pointer
kono
parents:
diff changeset
92 Target Report Var(flag_omit_leaf_frame_pointer) Init(2) Save
kono
parents:
diff changeset
93 Omit the frame pointer in leaf functions.
kono
parents:
diff changeset
94
kono
parents:
diff changeset
95 mtls-dialect=
kono
parents:
diff changeset
96 Target RejectNegative Joined Enum(tls_type) Var(aarch64_tls_dialect) Init(TLS_DESCRIPTORS) Save
kono
parents:
diff changeset
97 Specify TLS dialect.
kono
parents:
diff changeset
98
kono
parents:
diff changeset
99 mtls-size=
kono
parents:
diff changeset
100 Target RejectNegative Joined Var(aarch64_tls_size) Enum(aarch64_tls_size)
kono
parents:
diff changeset
101 Specifies bit size of immediate TLS offsets. Valid values are 12, 24, 32, 48.
kono
parents:
diff changeset
102
kono
parents:
diff changeset
103 Enum
kono
parents:
diff changeset
104 Name(aarch64_tls_size) Type(int)
kono
parents:
diff changeset
105
kono
parents:
diff changeset
106 EnumValue
kono
parents:
diff changeset
107 Enum(aarch64_tls_size) String(12) Value(12)
kono
parents:
diff changeset
108
kono
parents:
diff changeset
109 EnumValue
kono
parents:
diff changeset
110 Enum(aarch64_tls_size) String(24) Value(24)
kono
parents:
diff changeset
111
kono
parents:
diff changeset
112 EnumValue
kono
parents:
diff changeset
113 Enum(aarch64_tls_size) String(32) Value(32)
kono
parents:
diff changeset
114
kono
parents:
diff changeset
115 EnumValue
kono
parents:
diff changeset
116 Enum(aarch64_tls_size) String(48) Value(48)
kono
parents:
diff changeset
117
kono
parents:
diff changeset
118 march=
kono
parents:
diff changeset
119 Target RejectNegative ToLower Joined Var(aarch64_arch_string)
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
120 Use features of architecture ARCH.
111
kono
parents:
diff changeset
121
kono
parents:
diff changeset
122 mcpu=
kono
parents:
diff changeset
123 Target RejectNegative ToLower Joined Var(aarch64_cpu_string)
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
124 Use features of and optimize for CPU.
111
kono
parents:
diff changeset
125
kono
parents:
diff changeset
126 mtune=
kono
parents:
diff changeset
127 Target RejectNegative ToLower Joined Var(aarch64_tune_string)
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
128 Optimize for CPU.
111
kono
parents:
diff changeset
129
kono
parents:
diff changeset
130 mabi=
kono
parents:
diff changeset
131 Target RejectNegative Joined Enum(aarch64_abi) Var(aarch64_abi) Init(AARCH64_ABI_DEFAULT)
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
132 Generate code that conforms to the specified ABI.
111
kono
parents:
diff changeset
133
kono
parents:
diff changeset
134 moverride=
kono
parents:
diff changeset
135 Target RejectNegative ToLower Joined Var(aarch64_override_tune_string)
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
136 -moverride=<string> Power users only! Override CPU optimization parameters.
111
kono
parents:
diff changeset
137
kono
parents:
diff changeset
138 Enum
kono
parents:
diff changeset
139 Name(aarch64_abi) Type(int)
kono
parents:
diff changeset
140 Known AArch64 ABIs (for use with the -mabi= option):
kono
parents:
diff changeset
141
kono
parents:
diff changeset
142 EnumValue
kono
parents:
diff changeset
143 Enum(aarch64_abi) String(ilp32) Value(AARCH64_ABI_ILP32)
kono
parents:
diff changeset
144
kono
parents:
diff changeset
145 EnumValue
kono
parents:
diff changeset
146 Enum(aarch64_abi) String(lp64) Value(AARCH64_ABI_LP64)
kono
parents:
diff changeset
147
kono
parents:
diff changeset
148 mpc-relative-literal-loads
kono
parents:
diff changeset
149 Target Report Save Var(pcrelative_literal_loads) Init(2) Save
kono
parents:
diff changeset
150 PC relative literal loads.
kono
parents:
diff changeset
151
kono
parents:
diff changeset
152 msign-return-address=
kono
parents:
diff changeset
153 Target RejectNegative Report Joined Enum(aarch64_ra_sign_scope_t) Var(aarch64_ra_sign_scope) Init(AARCH64_FUNCTION_NONE) Save
kono
parents:
diff changeset
154 Select return address signing scope.
kono
parents:
diff changeset
155
kono
parents:
diff changeset
156 Enum
kono
parents:
diff changeset
157 Name(aarch64_ra_sign_scope_t) Type(enum aarch64_function_type)
kono
parents:
diff changeset
158 Supported AArch64 return address signing scope (for use with -msign-return-address= option):
kono
parents:
diff changeset
159
kono
parents:
diff changeset
160 EnumValue
kono
parents:
diff changeset
161 Enum(aarch64_ra_sign_scope_t) String(none) Value(AARCH64_FUNCTION_NONE)
kono
parents:
diff changeset
162
kono
parents:
diff changeset
163 EnumValue
kono
parents:
diff changeset
164 Enum(aarch64_ra_sign_scope_t) String(non-leaf) Value(AARCH64_FUNCTION_NON_LEAF)
kono
parents:
diff changeset
165
kono
parents:
diff changeset
166 EnumValue
kono
parents:
diff changeset
167 Enum(aarch64_ra_sign_scope_t) String(all) Value(AARCH64_FUNCTION_ALL)
kono
parents:
diff changeset
168
kono
parents:
diff changeset
169 mlow-precision-recip-sqrt
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
170 Target Var(flag_mrecip_low_precision_sqrt) Optimization
111
kono
parents:
diff changeset
171 Enable the reciprocal square root approximation. Enabling this reduces
kono
parents:
diff changeset
172 precision of reciprocal square root results to about 16 bits for
kono
parents:
diff changeset
173 single precision and to 32 bits for double precision.
kono
parents:
diff changeset
174
kono
parents:
diff changeset
175 mlow-precision-sqrt
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
176 Target Var(flag_mlow_precision_sqrt) Optimization
111
kono
parents:
diff changeset
177 Enable the square root approximation. Enabling this reduces
kono
parents:
diff changeset
178 precision of square root results to about 16 bits for
kono
parents:
diff changeset
179 single precision and to 32 bits for double precision.
kono
parents:
diff changeset
180 If enabled, it implies -mlow-precision-recip-sqrt.
kono
parents:
diff changeset
181
kono
parents:
diff changeset
182 mlow-precision-div
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
183 Target Var(flag_mlow_precision_div) Optimization
111
kono
parents:
diff changeset
184 Enable the division approximation. Enabling this reduces
kono
parents:
diff changeset
185 precision of division results to about 16 bits for
kono
parents:
diff changeset
186 single precision and to 32 bits for double precision.
kono
parents:
diff changeset
187
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
188 Enum
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
189 Name(sve_vector_bits) Type(enum aarch64_sve_vector_bits_enum)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
190 The possible SVE vector lengths:
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
191
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
192 EnumValue
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
193 Enum(sve_vector_bits) String(scalable) Value(SVE_SCALABLE)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
194
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
195 EnumValue
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
196 Enum(sve_vector_bits) String(128) Value(SVE_128)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
197
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
198 EnumValue
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
199 Enum(sve_vector_bits) String(256) Value(SVE_256)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
200
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
201 EnumValue
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
202 Enum(sve_vector_bits) String(512) Value(SVE_512)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
203
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
204 EnumValue
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
205 Enum(sve_vector_bits) String(1024) Value(SVE_1024)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
206
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
207 EnumValue
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
208 Enum(sve_vector_bits) String(2048) Value(SVE_2048)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
209
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
210 msve-vector-bits=
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
211 Target RejectNegative Joined Enum(sve_vector_bits) Var(aarch64_sve_vector_bits) Init(SVE_SCALABLE)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
212 -msve-vector-bits=<number> Set the number of bits in an SVE vector register to N.
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
213
111
kono
parents:
diff changeset
214 mverbose-cost-dump
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
215 Target Undocumented Var(flag_aarch64_verbose_cost)
111
kono
parents:
diff changeset
216 Enables verbose cost model dumping in the debug dump files.
131
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
217
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
218 mtrack-speculation
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
219 Target Var(aarch64_track_speculation)
84e7813d76e9 gcc-8.2
mir3636
parents: 111
diff changeset
220 Generate code to track when the CPU might be speculating incorrectly.