From bd83a68fb7ed0d746149029424f01cd857219fc0 Mon Sep 17 00:00:00 2001 From: Thomas Schwinge Date: Mon, 2 Aug 2021 18:33:50 +0200 Subject: [PATCH] Don't consider '-foffload-abi' in 'DEF_GOACC_BUILTIN', 'DEF_GOMP_BUILTIN' Since Tom's PR64707 commit r220037 (Git commit 1506ae0e1e865fb7a42fc37a47f1799b71f21c53) "Make fopenmp an LTO option" as well as PR64672 commit r220038 (Git commit a0c88d0629a33161add8d5bc083f1e59f3f756f7) "Make fopenacc an LTO option", we're now actually passing '-fopenacc'/'-fopenmp' to the 'mkoffload's, which will pass these on to the offload compilers. gcc/ * builtins.def (DEF_GOACC_BUILTIN, DEF_GOMP_BUILTIN): Don't consider '-foffload-abi'. * common.opt (-foffload-abi): Remove 'Var', 'Init'. * opts.c (common_handle_option) <-foffload-abi> [ACCEL_COMPILER]: Ignore. --- gcc/builtins.def | 8 ++------ gcc/common.opt | 2 +- gcc/opts.c | 6 ++++-- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/gcc/builtins.def b/gcc/builtins.def index ec556df4f66..45a09b4d42d 100644 --- a/gcc/builtins.def +++ b/gcc/builtins.def @@ -205,14 +205,11 @@ along with GCC; see the file COPYING3. If not see /* Builtin used by the implementation of OpenACC and OpenMP. Few of these are actually implemented in the compiler; most are in libgomp. */ -/* These builtins also need to be enabled in offloading compilers invoked from - mkoffload; for that purpose, we're checking the -foffload-abi flag here. */ #undef DEF_GOACC_BUILTIN #define DEF_GOACC_BUILTIN(ENUM, NAME, TYPE, ATTRS) \ DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ false, true, true, ATTRS, false, \ - (flag_openacc \ - || flag_offload_abi != OFFLOAD_ABI_UNSET)) + flag_openacc) #undef DEF_GOACC_BUILTIN_COMPILER #define DEF_GOACC_BUILTIN_COMPILER(ENUM, NAME, TYPE, ATTRS) \ DEF_BUILTIN (ENUM, "__builtin_" NAME, BUILT_IN_NORMAL, TYPE, TYPE, \ @@ -227,8 +224,7 @@ along with GCC; see the file COPYING3. If not see false, true, true, ATTRS, false, \ (flag_openacc \ || flag_openmp \ - || flag_tree_parallelize_loops > 1 \ - || flag_offload_abi != OFFLOAD_ABI_UNSET)) + || flag_tree_parallelize_loops > 1)) /* Builtin used by the implementation of GNU TM. These functions are mapped to the actual implementation of the STM library. */ diff --git a/gcc/common.opt b/gcc/common.opt index d9da1131eda..ed8ab5fbe13 100644 --- a/gcc/common.opt +++ b/gcc/common.opt @@ -2112,7 +2112,7 @@ Common Driver Joined MissingArgError(options or targets=options missing after %q -foffload-options== Specify options for the offloading targets. foffload-abi= -Common Joined RejectNegative Enum(offload_abi) Var(flag_offload_abi) Init(OFFLOAD_ABI_UNSET) +Common Joined RejectNegative Enum(offload_abi) -foffload-abi=[lp64|ilp32] Set the ABI to use in an offload compiler. Enum diff --git a/gcc/opts.c b/gcc/opts.c index 93366e6eb2d..1f52e1139c7 100644 --- a/gcc/opts.c +++ b/gcc/opts.c @@ -2737,12 +2737,14 @@ common_handle_option (struct gcc_options *opts, /* Deferred. */ break; -#ifndef ACCEL_COMPILER case OPT_foffload_abi_: +#ifdef ACCEL_COMPILER + /* Handled in the 'mkoffload's. */ +#else error_at (loc, "%<-foffload-abi%> option can be specified only for " "offload compiler"); - break; #endif + break; case OPT_fpack_struct_: if (value <= 0 || (value & (value - 1)) || value > 16) -- 2.25.1