annotate gcc/config/aarch64/aarch64.opt @ 111:04ced10e8804

gcc 7
author kono
date Fri, 27 Oct 2017 22:46:09 +0900
parents
children 84e7813d76e9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
111
kono
parents:
diff changeset
1 ; Machine description for AArch64 architecture.
kono
parents:
diff changeset
2 ; Copyright (C) 2009-2017 Free Software Foundation, Inc.
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
kono
parents:
diff changeset
88 Target Report RejectNegative Mask(STRICT_ALIGN) Save
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)
kono
parents:
diff changeset
120 -march=ARCH Use features of architecture ARCH.
kono
parents:
diff changeset
121
kono
parents:
diff changeset
122 mcpu=
kono
parents:
diff changeset
123 Target RejectNegative ToLower Joined Var(aarch64_cpu_string)
kono
parents:
diff changeset
124 -mcpu=CPU Use features of and optimize for CPU.
kono
parents:
diff changeset
125
kono
parents:
diff changeset
126 mtune=
kono
parents:
diff changeset
127 Target RejectNegative ToLower Joined Var(aarch64_tune_string)
kono
parents:
diff changeset
128 -mtune=CPU Optimize for CPU.
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)
kono
parents:
diff changeset
132 -mabi=ABI Generate code that conforms to the specified ABI.
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)
kono
parents:
diff changeset
136 -moverride=STRING Power users only! Override CPU optimization parameters.
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
kono
parents:
diff changeset
170 Common Var(flag_mrecip_low_precision_sqrt) Optimization
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
kono
parents:
diff changeset
176 Common Var(flag_mlow_precision_sqrt) Optimization
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
kono
parents:
diff changeset
183 Common Var(flag_mlow_precision_div) Optimization
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
kono
parents:
diff changeset
188 mverbose-cost-dump
kono
parents:
diff changeset
189 Common Undocumented Var(flag_aarch64_verbose_cost)
kono
parents:
diff changeset
190 Enables verbose cost model dumping in the debug dump files.