https://github.com/jhuber6 approved this pull request.
https://github.com/llvm/llvm-project/pull/132232
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -1073,6 +1073,35 @@ inputs. Here is some example of ``$``-prefixed options:
Language and Target-Independent Features
+Freestanding Builds
+---
+Passing the ``-ffreestanding`` flag causes Clang to build for a freestand
@@ -9348,11 +9348,22 @@ void LinkerWrapper::ConstructJob(Compilation &C, const
JobAction &JA,
// Add the linker arguments to be forwarded by the wrapper.
CmdArgs.push_back(Args.MakeArgString(Twine("--linker-path=") +
LinkCommand->getE
https://github.com/jhuber6 created
https://github.com/llvm/llvm-project/pull/133296
Summary:
I am probably the person most familiar with the offloading pipeline in
clang at this point.
>From 362fd1e9eb26871e956b29e2313a7495e8543bc9 Mon Sep 17 00:00:00 2001
From: Joseph Huber
Date: Thu, 27 Mar
@@ -3043,6 +3041,8 @@ defm fat_lto_objects : BoolFOption<"fat-lto-objects",
PosFlag,
NegFlag,
BothFlags<[], [ClangOption, CC1Option], " fat LTO object support">>;
+def flto_partitions_EQ : Joined<["-"], "flto-partitions=">, Group,
jhuber6 wrote:
To my kn
https://github.com/jhuber6 created
https://github.com/llvm/llvm-project/pull/133283
Summary:
The https://github.com/llvm/llvm-project/pull/128509 patch introduced
`--flto-partitions`. This was marked as a HIP only argument, and was
also spelled and handled incorrectly for an `-f` option. This pa
https://github.com/jhuber6 closed
https://github.com/llvm/llvm-project/pull/133296
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/jhuber6 updated
https://github.com/llvm/llvm-project/pull/134713
>From e44db82f3abe7c1d23c2b49094c92a890127ffc7 Mon Sep 17 00:00:00 2001
From: Joseph Huber
Date: Mon, 7 Apr 2025 14:37:22 -0500
Subject: [PATCH 1/6] [Clang] Unify 'nvptx-arch' and 'amdgpu-arch' into
'offload-ar
@@ -0,0 +1,78 @@
+//===- OffloadArch.cpp - list available GPUs *- C++
-*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apa
@@ -0,0 +1,78 @@
+//===- OffloadArch.cpp - list available GPUs *- C++
-*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Apa
https://github.com/jhuber6 updated
https://github.com/llvm/llvm-project/pull/134713
>From e44db82f3abe7c1d23c2b49094c92a890127ffc7 Mon Sep 17 00:00:00 2001
From: Joseph Huber
Date: Mon, 7 Apr 2025 14:37:22 -0500
Subject: [PATCH 1/2] [Clang] Unify 'nvptx-arch' and 'amdgpu-arch' into
'offload-ar
https://github.com/jhuber6 approved this pull request.
https://github.com/llvm/llvm-project/pull/134801
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/jhuber6 closed
https://github.com/llvm/llvm-project/pull/134713
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/jhuber6 updated
https://github.com/llvm/llvm-project/pull/135036
>From e41985970c254f3eda71cb5ef3a1dc321c8e6f56 Mon Sep 17 00:00:00 2001
From: Joseph Huber
Date: Wed, 9 Apr 2025 09:41:38 -0500
Subject: [PATCH 1/2] [AMDGPU] Fix code object verion not being set to 'none'
Summa
https://github.com/jhuber6 updated
https://github.com/llvm/llvm-project/pull/135036
>From e41985970c254f3eda71cb5ef3a1dc321c8e6f56 Mon Sep 17 00:00:00 2001
From: Joseph Huber
Date: Wed, 9 Apr 2025 09:41:38 -0500
Subject: [PATCH 1/2] [AMDGPU] Fix code object verion not being set to 'none'
Summa
https://github.com/jhuber6 approved this pull request.
https://github.com/llvm/llvm-project/pull/132869
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -62,7 +62,7 @@ Value *EmitAMDGPUWorkGroupSize(CodeGenFunction &CGF, unsigned
Index) {
auto Cov = CGF.getTarget().getTargetOpts().CodeObjectVersion;
- if (Cov == CodeObjectVersionKind::COV_None) {
+ if (Cov == CodeObjectVersionKind::COV_None && !CGF.getLangOpts().OpenM
@@ -62,7 +62,7 @@ Value *EmitAMDGPUWorkGroupSize(CodeGenFunction &CGF, unsigned
Index) {
auto Cov = CGF.getTarget().getTargetOpts().CodeObjectVersion;
- if (Cov == CodeObjectVersionKind::COV_None) {
+ if (Cov == CodeObjectVersionKind::COV_None && !CGF.getLangOpts().OpenM
@@ -9360,6 +9362,19 @@ void LinkerWrapper::ConstructJob(Compilation &C, const
JobAction &JA,
CmdArgs.push_back(LinkArg);
addOffloadCompressArgs(Args, CmdArgs);
+
+ // Default to half of hardware threads if users do not specify it.
+ if (Arg *A = Args.getLastArg(opti
@@ -1233,6 +1233,10 @@ def offload_compression_level_EQ : Joined<["--"],
"offload-compression-level=">,
Flags<[HelpHidden]>,
HelpText<"Compression level for offload device binaries (HIP only)">;
+def offload_jobs_EQ : Joined<["--"], "offload-jobs=">,
+ HelpText<"Set the
https://github.com/jhuber6 closed
https://github.com/llvm/llvm-project/pull/132870
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
jhuber6 wrote:
> The crash is blocking our compiler updates. If nothing depends on this change
> yet, it would be great to revert the patch and re-land it once it's fixed.
Go ahead and revert it, but I think there were some follow-up patches. Also the
`pgo1.c` and `pgo2.c` tests were flaky so
https://github.com/jhuber6 approved this pull request.
Didn't notice the indentation, LGTM.
https://github.com/llvm/llvm-project/pull/133456
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-com
https://github.com/jhuber6 commented:
Why does this only cause warnings when it makes dependency files? If we can
check whether or not it's HIP, then why isn't any of the HIP argument parsing
happening?
https://github.com/llvm/llvm-project/pull/133456
__
jhuber6 wrote:
> > Why does this only cause warnings when it makes dependency files?
>
> Because `--offloading-compress` is parsed by offload bundler and offload
> wrapper actions when creating job actions. There is no action to parse them
> in the compilation that only generates dependency fi
@@ -9332,11 +9332,22 @@ void LinkerWrapper::ConstructJob(Compilation &C, const
JobAction &JA,
// Add the linker arguments to be forwarded by the wrapper.
CmdArgs.push_back(Args.MakeArgString(Twine("--linker-path=") +
LinkCommand->getE
https://github.com/jhuber6 commented:
Very cool, in general I'm a fan of being able to use LLVM-IR as a more general
target. We already hack around these things in practice, so I think it's only
beneficial to formalize is in a more correct way, even if LLVM-IR wasn't
'strictly' intended to be
https://github.com/jhuber6 edited
https://github.com/llvm/llvm-project/pull/134016
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,64 @@
+// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
UTC_ARGS: --check-globals all --version 5
+// RUN: %clang_cc1 -triple amdgcn-amd-amdhsa -target-cpu gfx900 -emit-llvm %s
-o - | FileCheck --check-prefix=AMDGCN-GFX900 %s
+// RUN: %cla
@@ -0,0 +1,64 @@
+// NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py
UTC_ARGS: --check-globals all --version 5
+// RUN: %clang_cc1 -triple amdgcn-amd-amdhsa -target-cpu gfx900 -emit-llvm %s
-o - | FileCheck --check-prefix=AMDGCN-GFX900 %s
+// RUN: %cla
@@ -1721,17 +1721,10 @@ def EnableIf : InheritableAttr {
let Documentation = [EnableIfDocs];
}
-def ExtVectorType : Attr {
- // This is an OpenCL-related attribute and does not receive a [[]] spelling.
- let Spellings = [GNU<"ext_vector_type">];
- // FIXME: This subject l
https://github.com/jhuber6 created
https://github.com/llvm/llvm-project/pull/131332
Summary:
We neededa toolchain to get the GPU architectures when compiling with
OpenMP. This kind of breaks the toolchain model because these are cached
all over the place. Instead of making a new one, just create
jhuber6 wrote:
> It completely changes the type, it's much more aggressive than a type
> attribute? sizeof is no longer the same
We already have type-level vector attributes, like the vector size or NEON
attributes. Some of them also have `clang::` spellings.
https://github.com/llvm/llvm-proj
https://github.com/jhuber6 approved this pull request.
Nice
https://github.com/llvm/llvm-project/pull/131158
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -0,0 +1,182 @@
+//===-- spirvintrin.h - SPIRV intrinsic functions ===//
jhuber6 wrote:
The header stuff is separate from introducing these builtins, they should be
tested in isolation.
https://github.com/llvm/llvm-project/pull/131190
https://github.com/jhuber6 commented:
Are you trying to do an IR lowering? It'd probably make more sense to handle
that in LLVM than clang, but I guess Matt would be the expert there.
https://github.com/llvm/llvm-project/pull/129347
___
cfe-commits ma
@@ -4357,6 +4357,10 @@ bool CompilerInvocation::ParseLangArgs(LangOptions
&Opts, ArgList &Args,
Opts.OpenACCMacroOverride = A->getValue();
}
+ Opts.IsOffloadingTarget =
+ (Opts.OpenMPIsTargetDevice || Opts.SYCLIsDevice || Opts.CUDAIsDevice) &&
j
jhuber6 wrote:
We should probably wait until we have builtins, since there's no utility in
just having stubs right now.
https://github.com/llvm/llvm-project/pull/131164
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi
https://github.com/jhuber6 updated
https://github.com/llvm/llvm-project/pull/134713
>From e44db82f3abe7c1d23c2b49094c92a890127ffc7 Mon Sep 17 00:00:00 2001
From: Joseph Huber
Date: Mon, 7 Apr 2025 14:37:22 -0500
Subject: [PATCH 1/4] [Clang] Unify 'nvptx-arch' and 'amdgpu-arch' into
'offload-ar
@@ -37,8 +37,8 @@ static const unsigned SPIRDefIsPrivMap[] = {
0, // cuda_device
0, // cuda_constant
0, // cuda_shared
-// SYCL address space values for this map are dummy
-0, // sycl_global
+// Most SYCL address space values for this map are dummy
-
https://github.com/jhuber6 approved this pull request.
LG with one nit.
https://github.com/llvm/llvm-project/pull/135229
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -1234,6 +1234,10 @@ def offload_compression_level_EQ : Joined<["--"],
"offload-compression-level=">,
Flags<[HelpHidden]>,
HelpText<"Compression level for offload device binaries (HIP only)">;
+def offload_jobs_EQ : Joined<["--"], "offload-jobs=">,
+ HelpText<"Specify
https://github.com/jhuber6 edited
https://github.com/llvm/llvm-project/pull/135229
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Author: Joseph Huber
Date: 2025-04-07T10:30:58-05:00
New Revision: e2885772f05ddf9d81c54c5489801108838ca053
URL:
https://github.com/llvm/llvm-project/commit/e2885772f05ddf9d81c54c5489801108838ca053
DIFF:
https://github.com/llvm/llvm-project/commit/e2885772f05ddf9d81c54c5489801108838ca053.diff
@@ -792,6 +805,7 @@ bundleLinkedOutput(ArrayRef Images, const
ArgList &Args,
llvm::TimeTraceScope TimeScope("Bundle linked output");
switch (Kind) {
case OFK_OpenMP:
+ case OFK_SYCL:
return bundleOpenMP(Images);
jhuber6 wrote:
Could call it `offlo
https://github.com/jhuber6 approved this pull request.
LG, one nit.
https://github.com/llvm/llvm-project/pull/135229
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/jhuber6 edited
https://github.com/llvm/llvm-project/pull/135229
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -57,6 +57,7 @@
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/Process.h"
+#include "llvm/Support/ThreadPool.h"
jhuber6 wrote:
```suggestion
```
Unused now?
https://github.com/llvm/llvm-project/pull/135229
___
https://github.com/jhuber6 approved this pull request.
https://github.com/llvm/llvm-project/pull/135690
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -464,7 +464,8 @@ fatbinary(ArrayRef>
InputFiles,
} // namespace amdgcn
namespace generic {
-Expected clang(ArrayRef InputFiles, const ArgList &Args)
{
+Expected clang(ArrayRef InputFiles, const ArgList &Args,
+ bool HasSYCLOffloadKind = false) {
-
@@ -464,7 +464,8 @@ fatbinary(ArrayRef>
InputFiles,
} // namespace amdgcn
namespace generic {
-Expected clang(ArrayRef InputFiles, const ArgList &Args)
{
+Expected clang(ArrayRef InputFiles, const ArgList &Args,
+ bool HasSYCLOffloadKind = false) {
-
@@ -937,13 +961,47 @@ Expected> linkAndWrapDeviceFiles(
InputFiles.emplace_back(*FileNameOrErr);
}
+if (HasSYCLOffloadKind) {
+ // Link the remaining device files using the device linker.
+ auto OutputOrErr = linkDevice(InputFiles, LinkerArgs,
HasSYCLO
https://github.com/jhuber6 approved this pull request.
https://github.com/llvm/llvm-project/pull/135683
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/jhuber6 closed
https://github.com/llvm/llvm-project/pull/126143
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/jhuber6 updated
https://github.com/llvm/llvm-project/pull/136729
>From 748a7f76bf0188e0a1b72fcd5527a03a5ca2f054 Mon Sep 17 00:00:00 2001
From: Joseph Huber
Date: Tue, 22 Apr 2025 12:05:42 -0500
Subject: [PATCH] [OpenMP] Change build of OpenMP device runtime to be a
separate
https://github.com/jhuber6 created
https://github.com/llvm/llvm-project/pull/136729
Summary:
Currently we build the OpenMP device runtime as part of the `offload/`
project. This is problematic because it has several restrictions when
compared to the normal offloading runtime. It can only be buil
https://github.com/jhuber6 updated
https://github.com/llvm/llvm-project/pull/136729
>From ee6ca9501a07746c446a106619567d3faff07e98 Mon Sep 17 00:00:00 2001
From: Joseph Huber
Date: Tue, 22 Apr 2025 12:05:42 -0500
Subject: [PATCH] [OpenMP] Change build of OpenMP device runtime to be a
separate
https://github.com/jhuber6 created
https://github.com/llvm/llvm-project/pull/136754
Summary:
This was accidentally kept in the old location when we moved to the
new `lib//` location for the DeviceRTL. Move this to reduce the
delta with https://github.com/llvm/llvm-project/pull/136729.
>From 21
jhuber6 wrote:
> A naive question from someone who is not familiar with this area: Is any of
> this stuff usable with anything but a matching version of clang? If no, can
> we place these things in the clang resource directory, where the other
> version-bound runtimes live?
It's not intended,
@@ -122,35 +130,41 @@ else()
get_clang_resource_dir(LIBOMP_HEADERS_INSTALL_PATH SUBDIR include)
endif()
-# Build host runtime library, after LIBOMPTARGET variables are set since they
are needed
-# to enable time profiling support in the OpenMP runtime.
-add_subdirectory(run
@@ -2794,6 +2794,11 @@ void tools::addOpenMPDeviceRTL(const Driver &D,
for (const auto &LibPath : HostTC.getFilePaths())
LibraryPaths.emplace_back(LibPath);
+ // Check the target specific library path for the triple as well.
+ SmallString<128> P(D.Dir);
+ llvm::sys::p
jhuber6 wrote:
> I think using the LLVM_ENABLE_RUNTIMES-machanism is a great idea. Regarding
> the move back to `openmp/device`, I don't really have an opinion. However,
> there are some arguments to make:
>
> 1. The same arguments apply to `libomptarget` as well
>
> 2. Definitions su
https://github.com/jhuber6 closed
https://github.com/llvm/llvm-project/pull/136754
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/jhuber6 approved this pull request.
https://github.com/llvm/llvm-project/pull/135307
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/jhuber6 approved this pull request.
https://github.com/llvm/llvm-project/pull/134476
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -1234,6 +1234,10 @@ def offload_compression_level_EQ : Joined<["--"],
"offload-compression-level=">,
Flags<[HelpHidden]>,
HelpText<"Compression level for offload device binaries (HIP only)">;
+def offload_jobs_EQ : Joined<["--"], "offload-jobs=">,
+ HelpText<"Specify
@@ -988,6 +1038,11 @@ Expected> linkAndWrapDeviceFiles(
A.StringData["arch"] > B.StringData["arch"] ||
A.TheOffloadKind < B.TheOffloadKind;
});
+if (Kind == OFK_SYCL) {
+ // TODO: Update once SYCL offload wrapping logic is available.
-
@@ -168,10 +170,10 @@ Expected> getInput(const ArgList
&Args) {
/// are LLVM IR bitcode files.
// TODO: Support SPIR-V IR files.
Expected> getBitcodeModule(StringRef File,
- LLVMContext &C) {
+
@@ -937,13 +961,47 @@ Expected> linkAndWrapDeviceFiles(
InputFiles.emplace_back(*FileNameOrErr);
}
+if (HasSYCLOffloadKind) {
+ // Link the remaining device files using the device linker.
+ auto OutputOrErr = linkDevice(InputFiles, LinkerArgs,
HasSYCLO
https://github.com/jhuber6 approved this pull request.
https://github.com/llvm/llvm-project/pull/138547
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
Author: Joseph Huber
Date: 2025-04-30T16:25:28-05:00
New Revision: 0a1dde1d7957531701ba56e357276033a927f496
URL:
https://github.com/llvm/llvm-project/commit/0a1dde1d7957531701ba56e357276033a927f496
DIFF:
https://github.com/llvm/llvm-project/commit/0a1dde1d7957531701ba56e357276033a927f496.diff
https://github.com/jhuber6 approved this pull request.
https://github.com/llvm/llvm-project/pull/138480
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/jhuber6 approved this pull request.
https://github.com/llvm/llvm-project/pull/138158
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/jhuber6 approved this pull request.
Seems like a lot of the linker wrapper utilities copied and applied to Intel
binaries, harmless enough.
I'm wondering though, is there a reason we can't just use the backend right
now? What do these tools do that running `llc` can't.
http
@@ -0,0 +1,143 @@
+//===--- OffloadArch.h - Definition of offloading architectures --- C++
-*-===//
+//
+// Part of the LLVM Project, under the Apache License v2.0 with LLVM
Exceptions.
+// See https://llvm.org/LICENSE.txt for license information.
+// SPDX-License-Identifier: Ap
https://github.com/jhuber6 edited
https://github.com/llvm/llvm-project/pull/137070
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/jhuber6 approved this pull request.
Thanks
https://github.com/llvm/llvm-project/pull/137070
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -97,30 +97,30 @@ static const OffloadArchToStringMap arch_names[] = {
#undef GFX
const char *OffloadArchToString(OffloadArch A) {
- auto result = std::find_if(
- std::begin(arch_names), std::end(arch_names),
- [A](const OffloadArchToStringMap &map) { return A ==
@@ -0,0 +1,126 @@
+#include "clang/Basic/OffloadArch.h"
+
+#include "llvm/ADT/StringRef.h"
+
+#include
+
+namespace clang {
+
+namespace {
+struct OffloadArchToStringMap {
+ OffloadArch arch;
+ const char *arch_name;
+ const char *virtual_arch_name;
jhuber6 wr
https://github.com/jhuber6 closed
https://github.com/llvm/llvm-project/pull/87558
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/jhuber6 updated
https://github.com/llvm/llvm-project/pull/127082
>From b17f35541bb5de23389afe0af61cda2cac749e81 Mon Sep 17 00:00:00 2001
From: Joseph Huber
Date: Thu, 13 Feb 2025 09:27:24 -0600
Subject: [PATCH] [Clang] Disable RTTI for offloading at the frontend level
Summar
https://github.com/jhuber6 closed
https://github.com/llvm/llvm-project/pull/137070
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/jhuber6 approved this pull request.
https://github.com/llvm/llvm-project/pull/135809
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
https://github.com/jhuber6 created
https://github.com/llvm/llvm-project/pull/134713
Summary:
These two tools do the same thing, we should unify them into a single
tool. We create symlinks for backward compatiblity and provide a way to
get the old vendor specific behavior with `--amdgpu-only` and
@@ -35,6 +35,7 @@ enum OffloadKind : uint16_t {
OFK_OpenMP,
OFK_Cuda,
OFK_HIP,
+ OFK_SYCL,
jhuber6 wrote:
I think we should assign specific values for these and make them powers of two
apart so we can use them like a bitfield. Clang does that already.
@@ -923,10 +923,9 @@ Expected> linkAndWrapDeviceFiles(
});
auto LinkerArgs = getLinkerArgs(Input, BaseArgs);
-DenseSet ActiveOffloadKinds;
+uint16_t ActiveOffloadKindMask = 0u;
jhuber6 wrote:
This code doesn't need to be modified, but I gu
@@ -32,10 +32,12 @@ namespace object {
/// The producer of the associated offloading image.
enum OffloadKind : uint16_t {
OFK_None = 0,
- OFK_OpenMP,
- OFK_Cuda,
- OFK_HIP,
- OFK_LAST,
+ OFK_OpenMP = (1 << 1),
jhuber6 wrote:
This is 2, not 1.
https://g
@@ -32,10 +32,12 @@ namespace object {
/// The producer of the associated offloading image.
enum OffloadKind : uint16_t {
OFK_None = 0,
- OFK_OpenMP,
- OFK_Cuda,
- OFK_HIP,
- OFK_LAST,
+ OFK_OpenMP = (1 << 1),
+ OFK_FIRST = OFK_OpenMP,
jhuber6 wrote:
W
@@ -29,6 +29,8 @@ MODULE_PASS("amdgpu-printf-runtime-binding",
AMDGPUPrintfRuntimeBindingPass())
MODULE_PASS("amdgpu-remove-incompatible-functions",
AMDGPURemoveIncompatibleFunctionsPass(*this))
MODULE_PASS("amdgpu-sw-lower-lds", AMDGPUSwLowerLDSPass(*this))
MODULE_PASS("amdg
@@ -299,6 +310,18 @@ elseif (FLANG_RT_GCC_RESOURCE_DIR)
endif ()
endif ()
+
+
+if (CMAKE_C_BYTE_ORDER STREQUAL "BIG_ENDIAN")
jhuber6 wrote:
I was hoping I got rid of needing to detect endianness in CMake, since it makes
cross-compiling a pain. Not eager to
https://github.com/jhuber6 edited
https://github.com/llvm/llvm-project/pull/137828
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
@@ -102,6 +102,10 @@ ToolChain::ToolChain(const Driver &D, const llvm::Triple
&T,
getFilePaths().push_back(*Path);
for (const auto &Path : getArchSpecificLibPaths())
addIfExists(getFilePaths(), Path);
+
+ if (D.IsFlangMode()) {
+getIntrinsicModulePaths().append(
https://github.com/jhuber6 commented:
What's the main limitation here? If this is just a file dependency it should be
identical to how all the OpenMP tests depend on `omp.h` being in the resource
directory. IMHO this is trivial if we do a runtimes build, since we can just
require that `openmp;
@@ -157,6 +157,9 @@ class ToolChain {
/// The list of toolchain specific path prefixes to search for programs.
path_list ProgramPaths;
+path_list ModulePaths;
+path_list IntrinsicModulePaths;
jhuber6 wrote:
Format.
https://github.com/llvm/llv
@@ -3979,6 +3979,16 @@ def fsyntax_only : Flag<["-"], "fsyntax-only">,
Visibility<[ClangOption, CLOption, DXCOption, CC1Option, FC1Option,
FlangOption]>,
Group,
HelpText<"Run the preprocessor, parser and semantic analysis stages">;
+
+
+def fno_builtin_modules : Flag<["-
https://github.com/jhuber6 closed
https://github.com/llvm/llvm-project/pull/138158
___
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
jhuber6 wrote:
> also seeing "PluginInterface" error: Failure to look up global address: Error
> in hsa_executable_get_symbol_by_name(grid_points):
> HSA_STATUS_ERROR_INVALID_SYMBOL_NAME: There is no symbol with the given name.
> omptarget error: Failed to load symbol grid_points
Yeah, this i
@@ -9284,6 +9284,12 @@ void LinkerWrapper::ConstructJob(Compilation &C, const
JobAction &JA,
CmdArgs.push_back(Args.MakeArgString(
"--device-linker=" + TC->getTripleString() + "=" + Arg));
+ // Enable internalization for AMDGPU.
+ if (TC->getTrip
jhuber6 wrote:
> I don't think OpenMP is more special than HIP here. Anything exposed to the
> host should not be internalized. In addition, OpenMP actually also heavily
> uses internalization as well in OpenMPOpt. It is likely that this change
> exposes something bad in the downstream.
>
> T
@@ -9284,6 +9284,12 @@ void LinkerWrapper::ConstructJob(Compilation &C, const
JobAction &JA,
CmdArgs.push_back(Args.MakeArgString(
"--device-linker=" + TC->getTripleString() + "=" + Arg));
+ // Enable internalization for AMDGPU.
+ if (TC->getTrip
2401 - 2500 of 2704 matches
Mail list logo