[all-commits] [llvm/llvm-project] 8477a0: [OpenMP] Allow compiling multiple target architect...
Joseph Huber via All-commits
all-commits at lists.llvm.org
Fri May 6 13:57:35 PDT 2022
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 8477a0d769a0b877f14e3ec3fde576b6a3b173ce
https://github.com/llvm/llvm-project/commit/8477a0d769a0b877f14e3ec3fde576b6a3b173ce
Author: Joseph Huber <jhuber6 at vols.utk.edu>
Date: 2022-05-06 (Fri, 06 May 2022)
Changed paths:
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
M clang/lib/Driver/ToolChains/Cuda.cpp
M clang/test/Driver/amdgpu-openmp-toolchain-new.c
M clang/test/Driver/openmp-offload-gpu-new.c
Log Message:
-----------
[OpenMP] Allow compiling multiple target architectures with OpenMP
This patch adds support for OpenMP to use the `--offload-arch` and
`--no-offload-arch` options. Traditionally, OpenMP has only supported
compiling for a single architecture via the `-Xopenmp-target` option.
Now we can pass in a bound architecture and use that if given, otherwise
we default to the value of the `-march` option as before.
Note that this only applies the basic support, the OpenMP target runtime
does not yet know how to choose between multiple architectures.
Additionally other parts of the offloading toolchain (e.g. LTO) require
the `-march` option, these should be worked out later.
Reviewed By: tra
Differential Revision: https://reviews.llvm.org/D124721
Commit: 509b631f84e97e717a675a6ef60ae4728bb11551
https://github.com/llvm/llvm-project/commit/509b631f84e97e717a675a6ef60ae4728bb11551
Author: Joseph Huber <jhuber6 at vols.utk.edu>
Date: 2022-05-06 (Fri, 06 May 2022)
Changed paths:
M clang/include/clang/Basic/DiagnosticDriverKinds.td
M clang/include/clang/Driver/Driver.h
M clang/lib/Driver/Driver.cpp
M clang/lib/Driver/ToolChains/Clang.cpp
A clang/test/Driver/openmp-offload-infer.c
Log Message:
-----------
[OpenMP] Try to Infer target triples using the offloading architecture
Currently we require the `-fopenmp-targets=` option to specify the
triple to use for the offloading toolchains, and the `-Xopenmp-target=`
option to specify architectures to a specific toolchain. The changes
made in D124721 allowed us to use `--offload-arch=` to specify multiple
target architectures. However, this can become combersome with many
different architectures. This patch introduces functinality that
attempts to deduce the target triple and architectures from the
offloading action. Currently we will deduce known GPU architectures when
only `-fopenmp` is specified.
This required a bit of a hack to cache the deduced architectures,
without this we would've just thrown an error when we tried to look up
the architecture again when generating the job. Normally we require the
user to manually specify the toolchain arguments, but here they would
confict unless we overrode them.
Depends on: D124721
Reviewed By: saiislam
Differential Revision: https://reviews.llvm.org/D125050
Compare: https://github.com/llvm/llvm-project/compare/a8308020ac2f...509b631f84e9
More information about the All-commits
mailing list