LoongArch: Simplify -mexplicit-reloc definitions

Since we do not need printing or manual parsing of this option,
(whether in the driver or for target attributes to be supported later)
it can be handled in the .opt file framework.

gcc/ChangeLog:

	* config/loongarch/genopts/loongarch-strings: Remove explicit-reloc
	argument string definitions.
	* config/loongarch/loongarch-str.h: Same.
	* config/loongarch/genopts/loongarch.opt.in: Mark -m[no-]explicit-relocs
	as aliases to -mexplicit-relocs={always,none}
	* config/loongarch/loongarch.opt: Regenerate.
	* config/loongarch/loongarch.cc: Same.
This commit is contained in:
Yang Yujie 2024-01-08 09:14:10 +08:00 committed by Lulu Cheng
parent 39320de286
commit 1d1faf3264
5 changed files with 5 additions and 28 deletions

View file

@ -64,9 +64,3 @@ STR_CMODEL_TS tiny-static
STR_CMODEL_MEDIUM medium
STR_CMODEL_LARGE large
STR_CMODEL_EXTREME extreme
# -mexplicit-relocs
OPTSTR_EXPLICIT_RELOCS explicit-relocs
STR_EXPLICIT_RELOCS_AUTO auto
STR_EXPLICIT_RELOCS_NONE none
STR_EXPLICIT_RELOCS_ALWAYS always

View file

@ -181,20 +181,20 @@ Name(explicit_relocs) Type(int)
The code model option names for -mexplicit-relocs:
EnumValue
Enum(explicit_relocs) String(@@STR_EXPLICIT_RELOCS_AUTO@@) Value(EXPLICIT_RELOCS_AUTO)
Enum(explicit_relocs) String(auto) Value(EXPLICIT_RELOCS_AUTO)
EnumValue
Enum(explicit_relocs) String(@@STR_EXPLICIT_RELOCS_NONE@@) Value(EXPLICIT_RELOCS_NONE)
Enum(explicit_relocs) String(none) Value(EXPLICIT_RELOCS_NONE)
EnumValue
Enum(explicit_relocs) String(@@STR_EXPLICIT_RELOCS_ALWAYS@@) Value(EXPLICIT_RELOCS_ALWAYS)
Enum(explicit_relocs) String(always) Value(EXPLICIT_RELOCS_ALWAYS)
mexplicit-relocs=
Target RejectNegative Joined Enum(explicit_relocs) Var(la_opt_explicit_relocs) Init(M_OPT_UNSET)
Use %reloc() assembly operators.
mexplicit-relocs
Target Var(la_opt_explicit_relocs_backward) Init(M_OPT_UNSET)
Target Alias(mexplicit-relocs=, always, none)
Use %reloc() assembly operators (for backward compatibility).
mrecip

View file

@ -63,11 +63,6 @@ along with GCC; see the file COPYING3. If not see
#define STR_CMODEL_LARGE "large"
#define STR_CMODEL_EXTREME "extreme"
#define OPTSTR_EXPLICIT_RELOCS "explicit-relocs"
#define STR_EXPLICIT_RELOCS_AUTO "auto"
#define STR_EXPLICIT_RELOCS_NONE "none"
#define STR_EXPLICIT_RELOCS_ALWAYS "always"
#define OPTSTR_FRECIPE "frecipe"
#define OPTSTR_DIV32 "div32"
#define OPTSTR_LAM_BH "lam-bh"

View file

@ -7522,18 +7522,6 @@ loongarch_option_override_internal (struct gcc_options *opts,
loongarch_update_gcc_opt_status (&la_target, opts, opts_set);
loongarch_cpu_option_override (&la_target, opts, opts_set);
if (la_opt_explicit_relocs != M_OPT_UNSET
&& la_opt_explicit_relocs_backward != M_OPT_UNSET)
error ("do not use %qs (with %qs) and %qs (without %qs) together",
"-mexplicit-relocs=", "=",
la_opt_explicit_relocs_backward ? "-mexplicit-relocs"
: "-mno-explicit-relocs", "=");
if (la_opt_explicit_relocs_backward != M_OPT_UNSET)
la_opt_explicit_relocs = (la_opt_explicit_relocs_backward
? EXPLICIT_RELOCS_ALWAYS
: EXPLICIT_RELOCS_NONE);
if (la_opt_explicit_relocs == M_OPT_UNSET)
la_opt_explicit_relocs = (HAVE_AS_EXPLICIT_RELOCS
? (loongarch_mrelax

View file

@ -202,7 +202,7 @@ Target RejectNegative Joined Enum(explicit_relocs) Var(la_opt_explicit_relocs) I
Use %reloc() assembly operators.
mexplicit-relocs
Target Var(la_opt_explicit_relocs_backward) Init(M_OPT_UNSET)
Target Alias(mexplicit-relocs=, always, none)
Use %reloc() assembly operators (for backward compatibility).
mrecip