]>
Commit | Line | Data |
---|---|---|
09cae750 PD |
1 | ; Options for the RISC-V port of the compiler |
2 | ; | |
a945c346 | 3 | ; Copyright (C) 2011-2024 Free Software Foundation, Inc. |
09cae750 PD |
4 | ; |
5 | ; This file is part of GCC. | |
6 | ; | |
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. | |
11 | ; | |
12 | ; GCC is distributed in the hope that it will be useful, but WITHOUT | |
13 | ; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY | |
14 | ; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public | |
15 | ; License for more details. | |
16 | ; | |
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/>. | |
20 | ||
21 | HeaderInclude | |
22 | config/riscv/riscv-opts.h | |
23 | ||
a9604fcb MC |
24 | mbig-endian |
25 | Target RejectNegative Mask(BIG_ENDIAN) | |
26 | Assume target CPU is configured as big endian. | |
27 | ||
28 | mlittle-endian | |
29 | Target RejectNegative InverseMask(BIG_ENDIAN) | |
30 | Assume target CPU is configured as little endian. | |
31 | ||
09cae750 PD |
32 | mbranch-cost= |
33 | Target RejectNegative Joined UInteger Var(riscv_branch_cost) | |
34 | -mbranch-cost=N Set the cost of branches to roughly N instructions. | |
35 | ||
36 | mplt | |
eece52b5 | 37 | Target Var(TARGET_PLT) Init(1) |
09cae750 PD |
38 | When generating -fpic code, allow the use of PLTs. Ignored for fno-pic. |
39 | ||
40 | mabi= | |
17f2908f | 41 | Target RejectNegative Joined Enum(abi_type) Var(riscv_abi) Init(ABI_ILP32) Negative(mabi=) |
09cae750 PD |
42 | Specify integer and floating-point calling convention. |
43 | ||
0ce42fe1 AW |
44 | mpreferred-stack-boundary= |
45 | Target RejectNegative Joined UInteger Var(riscv_preferred_stack_boundary_arg) | |
46 | Attempt to keep stack aligned to this power of 2. | |
47 | ||
09cae750 PD |
48 | Enum |
49 | Name(abi_type) Type(enum riscv_abi_type) | |
50 | Supported ABIs (for use with the -mabi= option): | |
51 | ||
52 | EnumValue | |
53 | Enum(abi_type) String(ilp32) Value(ABI_ILP32) | |
54 | ||
09baee1a KC |
55 | EnumValue |
56 | Enum(abi_type) String(ilp32e) Value(ABI_ILP32E) | |
57 | ||
09cae750 PD |
58 | EnumValue |
59 | Enum(abi_type) String(ilp32f) Value(ABI_ILP32F) | |
60 | ||
61 | EnumValue | |
62 | Enum(abi_type) String(ilp32d) Value(ABI_ILP32D) | |
63 | ||
64 | EnumValue | |
65 | Enum(abi_type) String(lp64) Value(ABI_LP64) | |
66 | ||
006e90e1 TO |
67 | EnumValue |
68 | Enum(abi_type) String(lp64e) Value(ABI_LP64E) | |
69 | ||
09cae750 PD |
70 | EnumValue |
71 | Enum(abi_type) String(lp64f) Value(ABI_LP64F) | |
72 | ||
73 | EnumValue | |
74 | Enum(abi_type) String(lp64d) Value(ABI_LP64D) | |
75 | ||
76 | mfdiv | |
eece52b5 | 77 | Target Mask(FDIV) |
09cae750 PD |
78 | Use hardware floating-point divide and square root instructions. |
79 | ||
80 | mdiv | |
eece52b5 | 81 | Target Mask(DIV) |
09cae750 PD |
82 | Use hardware instructions for integer division. |
83 | ||
84 | march= | |
17f2908f | 85 | Target RejectNegative Joined Negative(march=) |
09cae750 PD |
86 | -march= Generate code for given RISC-V ISA (e.g. RV64IM). ISA strings must be |
87 | lower-case. | |
88 | ||
7af0f1e1 KC |
89 | march=help |
90 | Target RejectNegative | |
91 | -march=help Print supported -march extensions. | |
92 | ||
93 | ; -print-supported-extensions and --print-supported-extensions are added for | |
94 | ; clang compatibility. | |
95 | print-supported-extensions | |
96 | Target Undocumented RejectNegative Alias(march=help) | |
97 | ||
98 | -print-supported-extensions | |
99 | Target Undocumented RejectNegative Alias(march=help) | |
100 | ||
09cae750 | 101 | mtune= |
5f110561 | 102 | Target RejectNegative Joined Var(riscv_tune_string) Save |
09cae750 PD |
103 | -mtune=PROCESSOR Optimize the output for PROCESSOR. |
104 | ||
72eb8335 | 105 | mcpu= |
5f110561 | 106 | Target RejectNegative Joined Var(riscv_cpu_string) Save |
72eb8335 KC |
107 | -mcpu=PROCESSOR Use architecture of and optimize the output for PROCESSOR. |
108 | ||
09cae750 | 109 | msmall-data-limit= |
9e1e962e | 110 | Target Joined UInteger Var(g_switch_value) Init(8) |
09cae750 PD |
111 | -msmall-data-limit=N Put global and static data smaller than <number> bytes into a special section (on some targets). |
112 | ||
113 | msave-restore | |
eece52b5 | 114 | Target Mask(SAVE_RESTORE) |
09cae750 PD |
115 | Use smaller but slower prologue and epilogue code. |
116 | ||
de6320a8 | 117 | mshorten-memrefs |
3c7add6a | 118 | Target Var(riscv_mshorten_memrefs) Init(1) |
de6320a8 CB |
119 | Convert BASE + LARGE_OFFSET addresses to NEW_BASE + SMALL_OFFSET to allow more |
120 | memory accesses to be generated as compressed instructions. Currently targets | |
121 | 32-bit integer load/stores. | |
122 | ||
09cae750 | 123 | mcmodel= |
5f110561 | 124 | Target RejectNegative Joined Enum(code_model) Var(riscv_cmodel) Init(TARGET_DEFAULT_CMODEL) Save |
09cae750 PD |
125 | Specify the code model. |
126 | ||
82285692 | 127 | mstrict-align |
eece52b5 | 128 | Target Mask(STRICT_ALIGN) Save |
82285692 AW |
129 | Do not generate unaligned memory accesses. |
130 | ||
09cae750 PD |
131 | Enum |
132 | Name(code_model) Type(enum riscv_code_model) | |
133 | Known code models (for use with the -mcmodel= option): | |
134 | ||
135 | EnumValue | |
136 | Enum(code_model) String(medlow) Value(CM_MEDLOW) | |
137 | ||
138 | EnumValue | |
139 | Enum(code_model) String(medany) Value(CM_MEDANY) | |
140 | ||
d07d0e99 KLC |
141 | EnumValue |
142 | Enum(code_model) String(large) Value(CM_LARGE) | |
143 | ||
09cae750 | 144 | mexplicit-relocs |
eece52b5 | 145 | Target Mask(EXPLICIT_RELOCS) |
09cae750 PD |
146 | Use %reloc() operators, rather than assembly macros, to load addresses. |
147 | ||
a7af8489 | 148 | mrelax |
3c7add6a | 149 | Target Var(riscv_mrelax) Init(1) |
a7af8489 PD |
150 | Take advantage of linker relaxations to reduce the number of instructions |
151 | required to materialize symbol addresses. | |
152 | ||
32f86f2b | 153 | mcsr-check |
3c7add6a | 154 | Target Var(riscv_mcsr_check) Init(0) |
4338ac14 | 155 | Enable the CSR checking for the ISA-dependent CSR and the read-only CSR. |
32f86f2b J |
156 | The ISA-dependent CSR are only valid when the specific ISA is set. The |
157 | read-only CSR can not be written by the CSR instructions. | |
158 | ||
39663298 YW |
159 | momit-leaf-frame-pointer |
160 | Target Mask(OMIT_LEAF_FRAME_POINTER) Save | |
161 | Omit the frame pointer in leaf functions. | |
162 | ||
09cae750 PD |
163 | Mask(64BIT) |
164 | ||
165 | Mask(MUL) | |
166 | ||
167 | Mask(ATOMIC) | |
168 | ||
169 | Mask(HARD_FLOAT) | |
170 | ||
171 | Mask(DOUBLE_FLOAT) | |
172 | ||
173 | Mask(RVC) | |
09baee1a KC |
174 | |
175 | Mask(RVE) | |
8e966210 | 176 | |
e7da31ba KC |
177 | Mask(VECTOR) |
178 | ||
8340bbad JZZ |
179 | Mask(FULL_V) |
180 | ||
8e966210 | 181 | mriscv-attribute |
eece52b5 | 182 | Target Var(riscv_emit_attribute_p) Init(-1) |
8e966210 | 183 | Emit RISC-V ELF attribute. |
ffbb9818 ID |
184 | |
185 | malign-data= | |
186 | Target RejectNegative Joined Var(riscv_align_data_type) Enum(riscv_align_data) Init(riscv_align_data_type_xlen) | |
187 | Use the given data alignment. | |
188 | ||
189 | Enum | |
190 | Name(riscv_align_data) Type(enum riscv_align_data) | |
191 | Known data alignment choices (for use with the -malign-data= option): | |
192 | ||
193 | EnumValue | |
194 | Enum(riscv_align_data) String(xlen) Value(riscv_align_data_type_xlen) | |
195 | ||
196 | EnumValue | |
197 | Enum(riscv_align_data) String(natural) Value(riscv_align_data_type_natural) | |
c931e8d5 CQ |
198 | |
199 | mstack-protector-guard= | |
200 | Target RejectNegative Joined Enum(stack_protector_guard) Var(riscv_stack_protector_guard) Init(SSP_GLOBAL) | |
201 | Use given stack-protector guard. | |
202 | ||
203 | Enum | |
204 | Name(stack_protector_guard) Type(enum stack_protector_guard) | |
205 | Valid arguments to -mstack-protector-guard=: | |
206 | ||
207 | EnumValue | |
208 | Enum(stack_protector_guard) String(tls) Value(SSP_TLS) | |
209 | ||
210 | EnumValue | |
211 | Enum(stack_protector_guard) String(global) Value(SSP_GLOBAL) | |
212 | ||
213 | mstack-protector-guard-reg= | |
214 | Target RejectNegative Joined Var(riscv_stack_protector_guard_reg_str) | |
215 | Use the given base register for addressing the stack-protector guard. | |
216 | ||
217 | TargetVariable | |
218 | int riscv_stack_protector_guard_reg = 0 | |
219 | ||
220 | mstack-protector-guard-offset= | |
221 | Target RejectNegative Joined Integer Var(riscv_stack_protector_guard_offset_str) | |
222 | Use the given offset for addressing the stack-protector guard. | |
223 | ||
224 | TargetVariable | |
225 | long riscv_stack_protector_guard_offset = 0 | |
b03be74b KC |
226 | |
227 | TargetVariable | |
228 | int riscv_zi_subext | |
4b815282 | 229 | |
e4a4b8e9 FW |
230 | Mask(ZICSR) Var(riscv_zi_subext) |
231 | ||
232 | Mask(ZIFENCEI) Var(riscv_zi_subext) | |
233 | ||
234 | Mask(ZIHINTNTL) Var(riscv_zi_subext) | |
235 | ||
236 | Mask(ZIHINTPAUSE) Var(riscv_zi_subext) | |
237 | ||
238 | Mask(ZICOND) Var(riscv_zi_subext) | |
239 | ||
5c18df44 MC |
240 | Mask(ZICCAMOA) Var(riscv_zi_subext) |
241 | ||
242 | Mask(ZICCIF) Var(riscv_zi_subext) | |
243 | ||
244 | Mask(ZICCLSM) Var(riscv_zi_subext) | |
245 | ||
246 | Mask(ZICCRSE) Var(riscv_zi_subext) | |
247 | ||
a1a6b912 CM |
248 | TargetVariable |
249 | int riscv_za_subext | |
250 | ||
e4a4b8e9 FW |
251 | Mask(ZAWRS) Var(riscv_za_subext) |
252 | ||
5c18df44 MC |
253 | Mask(ZA64RS) Var(riscv_za_subext) |
254 | ||
255 | Mask(ZA128RS) Var(riscv_za_subext) | |
256 | ||
149e2170 KC |
257 | TargetVariable |
258 | int riscv_zb_subext | |
259 | ||
e4a4b8e9 FW |
260 | Mask(ZBA) Var(riscv_zb_subext) |
261 | ||
262 | Mask(ZBB) Var(riscv_zb_subext) | |
263 | ||
264 | Mask(ZBC) Var(riscv_zb_subext) | |
265 | ||
266 | Mask(ZBS) Var(riscv_zb_subext) | |
267 | ||
e0933572 J |
268 | TargetVariable |
269 | int riscv_zinx_subext | |
270 | ||
e4a4b8e9 FW |
271 | Mask(ZFINX) Var(riscv_zinx_subext) |
272 | ||
273 | Mask(ZDINX) Var(riscv_zinx_subext) | |
274 | ||
275 | Mask(ZHINX) Var(riscv_zinx_subext) | |
276 | ||
277 | Mask(ZHINXMIN) Var(riscv_zinx_subext) | |
278 | ||
add31efd SW |
279 | TargetVariable |
280 | int riscv_zk_subext | |
281 | ||
e4a4b8e9 FW |
282 | Mask(ZBKB) Var(riscv_zk_subext) |
283 | ||
284 | Mask(ZBKC) Var(riscv_zk_subext) | |
285 | ||
286 | Mask(ZBKX) Var(riscv_zk_subext) | |
287 | ||
288 | Mask(ZKNE) Var(riscv_zk_subext) | |
289 | ||
290 | Mask(ZKND) Var(riscv_zk_subext) | |
291 | ||
292 | Mask(ZKNH) Var(riscv_zk_subext) | |
293 | ||
294 | Mask(ZKR) Var(riscv_zk_subext) | |
295 | ||
296 | Mask(ZKSED) Var(riscv_zk_subext) | |
297 | ||
298 | Mask(ZKSH) Var(riscv_zk_subext) | |
299 | ||
300 | Mask(ZKT) Var(riscv_zk_subext) | |
301 | ||
e7da31ba | 302 | TargetVariable |
51776341 | 303 | int riscv_vector_elen_flags |
e7da31ba | 304 | |
e4a4b8e9 FW |
305 | Mask(VECTOR_ELEN_32) Var(riscv_vector_elen_flags) |
306 | ||
307 | Mask(VECTOR_ELEN_64) Var(riscv_vector_elen_flags) | |
308 | ||
309 | Mask(VECTOR_ELEN_FP_32) Var(riscv_vector_elen_flags) | |
310 | ||
311 | Mask(VECTOR_ELEN_FP_64) Var(riscv_vector_elen_flags) | |
312 | ||
313 | Mask(VECTOR_ELEN_FP_16) Var(riscv_vector_elen_flags) | |
314 | ||
1ddf65c5 XZ |
315 | Mask(VECTOR_ELEN_BF_16) Var(riscv_vector_elen_flags) |
316 | ||
e7da31ba KC |
317 | TargetVariable |
318 | int riscv_zvl_flags | |
319 | ||
e4a4b8e9 FW |
320 | Mask(ZVL32B) Var(riscv_zvl_flags) |
321 | ||
322 | Mask(ZVL64B) Var(riscv_zvl_flags) | |
323 | ||
324 | Mask(ZVL128B) Var(riscv_zvl_flags) | |
325 | ||
326 | Mask(ZVL256B) Var(riscv_zvl_flags) | |
327 | ||
328 | Mask(ZVL512B) Var(riscv_zvl_flags) | |
329 | ||
330 | Mask(ZVL1024B) Var(riscv_zvl_flags) | |
331 | ||
332 | Mask(ZVL2048B) Var(riscv_zvl_flags) | |
333 | ||
334 | Mask(ZVL4096B) Var(riscv_zvl_flags) | |
335 | ||
336 | Mask(ZVL8192B) Var(riscv_zvl_flags) | |
337 | ||
338 | Mask(ZVL16384B) Var(riscv_zvl_flags) | |
339 | ||
340 | Mask(ZVL32768B) Var(riscv_zvl_flags) | |
341 | ||
342 | Mask(ZVL65536B) Var(riscv_zvl_flags) | |
343 | ||
7c521f67 CM |
344 | TargetVariable |
345 | int riscv_zvb_subext | |
346 | ||
e4a4b8e9 FW |
347 | Mask(ZVBB) Var(riscv_zvb_subext) |
348 | ||
349 | Mask(ZVBC) Var(riscv_zvb_subext) | |
350 | ||
9448428b FW |
351 | Mask(ZVKB) Var(riscv_zvb_subext) |
352 | ||
7c521f67 CM |
353 | TargetVariable |
354 | int riscv_zvk_subext | |
355 | ||
e4a4b8e9 FW |
356 | Mask(ZVKG) Var(riscv_zvk_subext) |
357 | ||
358 | Mask(ZVKNED) Var(riscv_zvk_subext) | |
359 | ||
360 | Mask(ZVKNHA) Var(riscv_zvk_subext) | |
361 | ||
362 | Mask(ZVKNHB) Var(riscv_zvk_subext) | |
363 | ||
364 | Mask(ZVKSED) Var(riscv_zvk_subext) | |
365 | ||
366 | Mask(ZVKSH) Var(riscv_zvk_subext) | |
367 | ||
368 | Mask(ZVKN) Var(riscv_zvk_subext) | |
369 | ||
370 | Mask(ZVKNC) Var(riscv_zvk_subext) | |
371 | ||
372 | Mask(ZVKNG) Var(riscv_zvk_subext) | |
373 | ||
374 | Mask(ZVKS) Var(riscv_zvk_subext) | |
375 | ||
376 | Mask(ZVKSC) Var(riscv_zvk_subext) | |
377 | ||
378 | Mask(ZVKSG) Var(riscv_zvk_subext) | |
379 | ||
380 | Mask(ZVKT) Var(riscv_zvk_subext) | |
381 | ||
23c738bc S |
382 | TargetVariable |
383 | int riscv_zicmo_subext | |
384 | ||
e4a4b8e9 FW |
385 | Mask(ZICBOZ) Var(riscv_zicmo_subext) |
386 | ||
387 | Mask(ZICBOM) Var(riscv_zicmo_subext) | |
388 | ||
389 | Mask(ZICBOP) Var(riscv_zicmo_subext) | |
390 | ||
285300eb CM |
391 | Mask(ZIC64B) Var(riscv_zicmo_subext) |
392 | ||
bd159a76 KC |
393 | TargetVariable |
394 | int riscv_zf_subext | |
395 | ||
e4a4b8e9 FW |
396 | Mask(ZFHMIN) Var(riscv_zf_subext) |
397 | ||
398 | Mask(ZFH) Var(riscv_zf_subext) | |
399 | ||
1ddf65c5 XZ |
400 | Mask(ZVFBFMIN) Var(riscv_zf_subext) |
401 | ||
e4a4b8e9 FW |
402 | Mask(ZVFHMIN) Var(riscv_zf_subext) |
403 | ||
404 | Mask(ZVFH) Var(riscv_zf_subext) | |
405 | ||
30699b99 JM |
406 | TargetVariable |
407 | int riscv_zfa_subext | |
408 | ||
e4a4b8e9 FW |
409 | Mask(ZFA) Var(riscv_zfa_subext) |
410 | ||
77e8e405 L |
411 | TargetVariable |
412 | int riscv_zm_subext | |
413 | ||
e4a4b8e9 FW |
414 | Mask(ZMMUL) Var(riscv_zm_subext) |
415 | ||
17c22f46 J |
416 | TargetVariable |
417 | int riscv_zc_subext | |
418 | ||
e4a4b8e9 FW |
419 | Mask(ZCA) Var(riscv_zc_subext) |
420 | ||
421 | Mask(ZCB) Var(riscv_zc_subext) | |
422 | ||
423 | Mask(ZCE) Var(riscv_zc_subext) | |
424 | ||
425 | Mask(ZCF) Var(riscv_zc_subext) | |
426 | ||
427 | Mask(ZCD) Var(riscv_zc_subext) | |
428 | ||
429 | Mask(ZCMP) Var(riscv_zc_subext) | |
430 | ||
431 | Mask(ZCMT) Var(riscv_zc_subext) | |
432 | ||
9eeca775 MB |
433 | Mask(XCVBI) Var(riscv_xcv_subext) |
434 | ||
86654b2c MC |
435 | TargetVariable |
436 | int riscv_sv_subext | |
437 | ||
e4a4b8e9 FW |
438 | Mask(SVINVAL) Var(riscv_sv_subext) |
439 | ||
440 | Mask(SVNAPOT) Var(riscv_sv_subext) | |
441 | ||
0ac32323 PN |
442 | TargetVariable |
443 | int riscv_ztso_subext | |
444 | ||
e4a4b8e9 FW |
445 | Mask(ZTSO) Var(riscv_ztso_subext) |
446 | ||
400efddd MB |
447 | TargetVariable |
448 | int riscv_xcv_subext | |
449 | ||
450 | Mask(XCVMAC) Var(riscv_xcv_subext) | |
451 | ||
5ef248c1 MB |
452 | Mask(XCVALU) Var(riscv_xcv_subext) |
453 | ||
14876d6a MB |
454 | Mask(XCVELW) Var(riscv_xcv_subext) |
455 | ||
5739d5fb MB |
456 | Mask(XCVSIMD) Var(riscv_xcv_subext) |
457 | ||
8351535f CM |
458 | TargetVariable |
459 | int riscv_xthead_subext | |
460 | ||
e4a4b8e9 FW |
461 | Mask(XTHEADBA) Var(riscv_xthead_subext) |
462 | ||
463 | Mask(XTHEADBB) Var(riscv_xthead_subext) | |
464 | ||
465 | Mask(XTHEADBS) Var(riscv_xthead_subext) | |
466 | ||
467 | Mask(XTHEADCMO) Var(riscv_xthead_subext) | |
468 | ||
469 | Mask(XTHEADCONDMOV) Var(riscv_xthead_subext) | |
470 | ||
471 | Mask(XTHEADFMEMIDX) Var(riscv_xthead_subext) | |
472 | ||
473 | Mask(XTHEADFMV) Var(riscv_xthead_subext) | |
474 | ||
475 | Mask(XTHEADINT) Var(riscv_xthead_subext) | |
476 | ||
477 | Mask(XTHEADMAC) Var(riscv_xthead_subext) | |
478 | ||
479 | Mask(XTHEADMEMIDX) Var(riscv_xthead_subext) | |
480 | ||
481 | Mask(XTHEADMEMPAIR) Var(riscv_xthead_subext) | |
482 | ||
483 | Mask(XTHEADSYNC) Var(riscv_xthead_subext) | |
484 | ||
d05b5265 JSJ |
485 | Mask(XTHEADVECTOR) Var(riscv_xthead_subext) |
486 | ||
af88776c TO |
487 | TargetVariable |
488 | int riscv_xventana_subext | |
489 | ||
e4a4b8e9 FW |
490 | Mask(XVENTANACONDOPS) Var(riscv_xventana_subext) |
491 | ||
4b815282 KC |
492 | Enum |
493 | Name(isa_spec_class) Type(enum riscv_isa_spec_class) | |
494 | Supported ISA specs (for use with the -misa-spec= option): | |
495 | ||
496 | EnumValue | |
497 | Enum(isa_spec_class) String(2.2) Value(ISA_SPEC_CLASS_2P2) | |
498 | ||
499 | EnumValue | |
500 | Enum(isa_spec_class) String(20190608) Value(ISA_SPEC_CLASS_20190608) | |
501 | ||
502 | EnumValue | |
503 | Enum(isa_spec_class) String(20191213) Value(ISA_SPEC_CLASS_20191213) | |
504 | ||
505 | misa-spec= | |
eece52b5 | 506 | Target RejectNegative Joined Enum(isa_spec_class) Var(riscv_isa_spec) Init(TARGET_DEFAULT_ISA_SPEC) |
4b815282 | 507 | Set the version of RISC-V ISA spec. |
2fb7df82 | 508 | |
dc95b338 MR |
509 | mmovcc |
510 | Target Var(TARGET_MOVCC) | |
511 | Enable conditional moves unconditionally. | |
512 | ||
f797260a PN |
513 | minline-atomics |
514 | Target Var(TARGET_INLINE_SUBWORD_ATOMIC) Init(1) | |
515 | Always inline subword atomic operations. | |
516 | ||
949f1ccf | 517 | minline-strcmp |
3c7add6a | 518 | Target Var(riscv_inline_strcmp) Init(0) |
949f1ccf CM |
519 | Inline strcmp calls if possible. |
520 | ||
521 | minline-strncmp | |
3c7add6a | 522 | Target Var(riscv_inline_strncmp) Init(0) |
949f1ccf CM |
523 | Inline strncmp calls if possible. |
524 | ||
df48285b | 525 | minline-strlen |
3c7add6a | 526 | Target Var(riscv_inline_strlen) Init(0) |
df48285b CM |
527 | Inline strlen calls if possible. |
528 | ||
949f1ccf CM |
529 | -param=riscv-strcmp-inline-limit= |
530 | Target RejectNegative Joined UInteger Var(riscv_strcmp_inline_limit) Init(64) | |
531 | Max number of bytes to compare as part of inlined strcmp/strncmp routines (default: 64). | |
532 | ||
2fb7df82 | 533 | Enum |
cd1ce3b3 | 534 | Name(rvv_max_lmul) Type(enum rvv_max_lmul_enum) |
535 | The RVV possible LMUL (-mrvv-max-lmul=): | |
2fb7df82 JZZ |
536 | |
537 | EnumValue | |
cd1ce3b3 | 538 | Enum(rvv_max_lmul) String(m1) Value(RVV_M1) |
2fb7df82 JZZ |
539 | |
540 | EnumValue | |
cd1ce3b3 | 541 | Enum(rvv_max_lmul) String(m2) Value(RVV_M2) |
2fb7df82 JZZ |
542 | |
543 | EnumValue | |
cd1ce3b3 | 544 | Enum(rvv_max_lmul) String(m4) Value(RVV_M4) |
2fb7df82 JZZ |
545 | |
546 | EnumValue | |
cd1ce3b3 | 547 | Enum(rvv_max_lmul) String(m8) Value(RVV_M8) |
2fb7df82 | 548 | |
ef4e916b | 549 | EnumValue |
cd1ce3b3 | 550 | Enum(rvv_max_lmul) String(dynamic) Value(RVV_DYNAMIC) |
ef4e916b | 551 | |
cd1ce3b3 | 552 | mrvv-max-lmul= |
553 | Target RejectNegative Joined Enum(rvv_max_lmul) Var(rvv_max_lmul) Init(RVV_M1) | |
554 | -mrvv-max-lmul=<string> Set the RVV LMUL of auto-vectorization. | |
94a4b932 | 555 | |
f8498436 RD |
556 | madjust-lmul-cost |
557 | Target Var(TARGET_ADJUST_LMUL_COST) Init(0) | |
558 | ||
7ee7e07d VG |
559 | Enum |
560 | Name(vsetvl_strategy) Type(enum vsetvl_strategy_enum) | |
561 | Valid arguments to -param=vsetvl-strategy=: | |
562 | ||
1a8bebb1 JZ |
563 | EnumValue |
564 | Enum(vsetvl_strategy) String(optim) Value(VSETVL_OPT) | |
565 | ||
7ee7e07d VG |
566 | EnumValue |
567 | Enum(vsetvl_strategy) String(simple) Value(VSETVL_SIMPLE) | |
568 | ||
569 | EnumValue | |
1a8bebb1 | 570 | Enum(vsetvl_strategy) String(optim-no-fusion) Value(VSETVL_OPT_NO_FUSION) |
7ee7e07d VG |
571 | |
572 | -param=vsetvl-strategy= | |
573 | Target Undocumented RejectNegative Joined Enum(vsetvl_strategy) Var(vsetvl_strategy) Init(VSETVL_OPT) | |
574 | -param=vsetvl-strategy=<string> Set the optimization level of VSETVL insert pass. | |
575 | ||
e6269bb6 | 576 | Enum |
4ae5a733 RD |
577 | Name(stringop_strategy) Type(enum stringop_strategy_enum) |
578 | Valid arguments to -mstringop-strategy=: | |
e6269bb6 | 579 | |
580 | EnumValue | |
4ae5a733 | 581 | Enum(stringop_strategy) String(auto) Value(STRATEGY_AUTO) |
e6269bb6 | 582 | |
583 | EnumValue | |
4ae5a733 | 584 | Enum(stringop_strategy) String(libcall) Value(STRATEGY_LIBCALL) |
e6269bb6 | 585 | |
586 | EnumValue | |
4ae5a733 | 587 | Enum(stringop_strategy) String(scalar) Value(STRATEGY_SCALAR) |
e6269bb6 | 588 | |
589 | EnumValue | |
4ae5a733 | 590 | Enum(stringop_strategy) String(vector) Value(STRATEGY_VECTOR) |
e6269bb6 | 591 | |
4ae5a733 RD |
592 | mstringop-strategy= |
593 | Target RejectNegative Joined Enum(stringop_strategy) Var(stringop_strategy) Init(STRATEGY_AUTO) | |
594 | Specify stringop expansion strategy. | |
0a01d123 PL |
595 | |
596 | Enum | |
597 | Name(rvv_vector_bits) Type(enum rvv_vector_bits_enum) | |
598 | The possible RVV vector register lengths: | |
599 | ||
600 | EnumValue | |
601 | Enum(rvv_vector_bits) String(scalable) Value(RVV_VECTOR_BITS_SCALABLE) | |
602 | ||
603 | EnumValue | |
604 | Enum(rvv_vector_bits) String(zvl) Value(RVV_VECTOR_BITS_ZVL) | |
605 | ||
606 | mrvv-vector-bits= | |
607 | Target RejectNegative Joined Enum(rvv_vector_bits) Var(rvv_vector_bits) Init(RVV_VECTOR_BITS_SCALABLE) | |
608 | -mrvv-vector-bits=<string> Set the kind of bits for an RVV vector register. | |
97069657 TI |
609 | |
610 | Enum | |
611 | Name(tls_type) Type(enum riscv_tls_type) | |
612 | The possible TLS dialects: | |
613 | ||
614 | EnumValue | |
615 | Enum(tls_type) String(trad) Value(TLS_TRADITIONAL) | |
616 | ||
617 | EnumValue | |
618 | Enum(tls_type) String(desc) Value(TLS_DESCRIPTORS) | |
619 | ||
620 | mtls-dialect= | |
621 | Target RejectNegative Joined Enum(tls_type) Var(riscv_tls_dialect) Init(TLS_TRADITIONAL) Save | |
622 | Specify TLS dialect. |