https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105662
Bug ID: 105662
Summary: [RFC][OpenMP][OpenMP] - permit disabling host-fallback
mode?
Product: gcc
Version: 13.0
Status: UNCONFIRMED
Keywords: openacc, openmp
Severity: normal
Priority: P3
Component: middle-end
Assignee: unassigned at gcc dot gnu.org
Reporter: burnus at gcc dot gnu.org
CC: jakub at gcc dot gnu.org, tschwinge at gcc dot gnu.org
Target Milestone: ---
The following issue came up / was mentioned elsewhere:
It can be useful do disable host fallback
and generate only device/nonhost versions
for (OpenMP) target / (OpenACC) compute regions.
Some other closed-source compilers have this feature and Clang recently got
that
feature.
Some users seem to interested in this to avoid creating separate functions –
and
then using 'omp declare variant' / OpenACC's 'bind' clause for them.
Additionally, some might prefer it to effectively force mandatory on-device
calculation and to save some bytes from the generated binary.
However, I note that the (main) reason that Clang got it was a different one
according to the reasoning given in the commit:
https://github.com/llvm/llvm-project/commit/47d66255701a5cfeab6c05e3642a2cccf7a4c09f
Date: Thu Apr 21 20:13:33 2022 -0400
[OpenMP] Add options to only compile the host or device when offloading
OpenMP recently moved to the new offloading driver, this had the effect
of making it more difficult to inspect intermediate code for the device.
This patch adds `-foffload-host-only` and `-foffload-device-only` to
control which sides get compiled. This will allow users to more easily
inspect output without needing the temp files.
Reviewed By: tra
Differential Revision: https://reviews.llvm.org/D124220
It uses:
def offload_device_only : Flag<["--"], "offload-device-only">,
HelpText<"Only compile for the offloading device.">;
def offload_host_only : Flag<["--"], "offload-host-only">,
HelpText<"Only compile for the offloading host.">;
def offload_host_device : Flag<["--"], "offload-host-device">,
HelpText<"Only compile for the offloading host.">;