[clang] [llvm] [LLVM][Triple][NFCI] Add function to test for GPU offloading triples (PR #126956)
Nick Sarnie via llvm-commits
llvm-commits at lists.llvm.org
Thu Feb 13 07:15:51 PST 2025
https://github.com/sarnex updated https://github.com/llvm/llvm-project/pull/126956
>From 967dec47f3d369effa0defdc0d39547a173aca67 Mon Sep 17 00:00:00 2001
From: "Sarnie, Nick" <nick.sarnie at intel.com>
Date: Wed, 12 Feb 2025 11:03:34 -0800
Subject: [PATCH 1/2] [LLVM][Triple][NFCI] Add function to test for GPU
offloading triples
Signed-off-by: Sarnie, Nick <nick.sarnie at intel.com>
---
clang/lib/CodeGen/CGOpenMPRuntime.cpp | 7 +++----
clang/lib/CodeGen/CodeGenModule.cpp | 2 +-
clang/lib/CodeGen/CodeGenModule.h | 3 +--
clang/lib/Driver/Driver.cpp | 7 +++----
clang/lib/Driver/ToolChains/Clang.cpp | 6 ++----
clang/lib/Driver/ToolChains/CommonArgs.cpp | 4 ++--
clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp | 2 +-
llvm/include/llvm/TargetParser/Triple.h | 5 +++++
llvm/include/llvm/Transforms/IPO/Attributor.h | 4 +---
llvm/lib/Transforms/IPO/Attributor.cpp | 4 ++--
.../Transforms/Instrumentation/SanitizerBinaryMetadata.cpp | 2 +-
11 files changed, 22 insertions(+), 24 deletions(-)
diff --git a/clang/lib/CodeGen/CGOpenMPRuntime.cpp b/clang/lib/CodeGen/CGOpenMPRuntime.cpp
index b679d63874b3b..32cba453b3d10 100644
--- a/clang/lib/CodeGen/CGOpenMPRuntime.cpp
+++ b/clang/lib/CodeGen/CGOpenMPRuntime.cpp
@@ -2624,9 +2624,8 @@ void CGOpenMPRuntime::emitDistributeStaticInit(
emitUpdateLocation(CGF, Loc, OMP_IDENT_WORK_DISTRIBUTE);
llvm::Value *ThreadId = getThreadID(CGF, Loc);
llvm::FunctionCallee StaticInitFunction;
- bool isGPUDistribute =
- CGM.getLangOpts().OpenMPIsTargetDevice &&
- (CGM.getTriple().isAMDGCN() || CGM.getTriple().isNVPTX());
+ bool isGPUDistribute = CGM.getLangOpts().OpenMPIsTargetDevice &&
+ CGM.getTriple().isOffloadingTargetGPU();
StaticInitFunction = OMPBuilder.createForStaticInitFunction(
Values.IVSize, Values.IVSigned, isGPUDistribute);
@@ -2656,7 +2655,7 @@ void CGOpenMPRuntime::emitForStaticFinish(CodeGenFunction &CGF,
auto DL = ApplyDebugLocation::CreateDefaultArtificial(CGF, Loc);
if (isOpenMPDistributeDirective(DKind) &&
CGM.getLangOpts().OpenMPIsTargetDevice &&
- (CGM.getTriple().isAMDGCN() || CGM.getTriple().isNVPTX()))
+ CGM.getTriple().isOffloadingTargetGPU())
CGF.EmitRuntimeCall(
OMPBuilder.getOrCreateRuntimeFunction(
CGM.getModule(), OMPRTL___kmpc_distribute_static_fini),
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index 7924c32fcf633..99c8f6e547e87 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -842,7 +842,7 @@ static void setVisibilityFromDLLStorageClass(const clang::LangOptions &LO,
static bool isStackProtectorOn(const LangOptions &LangOpts,
const llvm::Triple &Triple,
clang::LangOptions::StackProtectorMode Mode) {
- if (Triple.isAMDGPU() || Triple.isNVPTX())
+ if (Triple.isOffloadingTargetGPU())
return false;
return LangOpts.getStackProtector() == Mode;
}
diff --git a/clang/lib/CodeGen/CodeGenModule.h b/clang/lib/CodeGen/CodeGenModule.h
index c6f6fd5b9a7bd..f197c420f6d44 100644
--- a/clang/lib/CodeGen/CodeGenModule.h
+++ b/clang/lib/CodeGen/CodeGenModule.h
@@ -1067,8 +1067,7 @@ class CodeGenModule : public CodeGenTypeCache {
bool shouldEmitRTTI(bool ForEH = false) {
return (ForEH || getLangOpts().RTTI) && !getLangOpts().CUDAIsDevice &&
!(getLangOpts().OpenMP && getLangOpts().OpenMPIsTargetDevice &&
- (getTriple().isNVPTX() || getTriple().isAMDGPU() ||
- getTriple().isSPIRV()));
+ getTriple().isOffloadingTargetGPU());
}
/// Get the address of the RTTI descriptor for the given type.
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index 50941d2aaa429..b1847322add16 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -3351,10 +3351,9 @@ class OffloadingActionBuilder final {
const ToolChain *HostTC = C.getSingleOffloadToolChain<Action::OFK_Host>();
assert(HostTC && "No toolchain for host compilation.");
- if (HostTC->getTriple().isNVPTX() ||
- HostTC->getTriple().getArch() == llvm::Triple::amdgcn) {
- // We do not support targeting NVPTX/AMDGCN for host compilation. Throw
- // an error and abort pipeline construction early so we don't trip
+ if (HostTC->getTriple().isOffloadingTargetGPU()) {
+ // We do not support targeting offloading GPUs for host compilation.
+ // Throw an error and abort pipeline construction early so we don't trip
// asserts that assume device-side compilation.
C.getDriver().Diag(diag::err_drv_cuda_host_arch)
<< HostTC->getTriple().getArchName();
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index 5deafa2ad0f4a..b25a15338d9ca 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -1133,8 +1133,7 @@ void Clang::AddPreprocessingOptions(Compilation &C, const JobAction &JA,
if (JA.isDeviceOffloading(Action::OFK_OpenMP) &&
!Args.hasArg(options::OPT_nostdinc) &&
!Args.hasArg(options::OPT_nogpuinc) &&
- (getToolChain().getTriple().isNVPTX() ||
- getToolChain().getTriple().isAMDGCN())) {
+ getToolChain().getTriple().isOffloadingTargetGPU()) {
if (!Args.hasArg(options::OPT_nobuiltininc)) {
// Add openmp_wrappers/* to our system include path. This lets us wrap
// standard library headers.
@@ -1321,8 +1320,7 @@ void Clang::AddPreprocessingOptions(Compilation &C, const JobAction &JA,
// Without an offloading language we will include these headers directly.
// Offloading languages will instead only use the declarations stored in
// the resource directory at clang/lib/Headers/llvm_libc_wrappers.
- if ((getToolChain().getTriple().isNVPTX() ||
- getToolChain().getTriple().isAMDGCN()) &&
+ if (getToolChain().getTriple().isOffloadingTargetGPU() &&
C.getActiveOffloadKinds() == Action::OFK_None) {
SmallString<128> P(llvm::sys::path::parent_path(D.Dir));
llvm::sys::path::append(P, "include");
diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index 9a4d3f55c911c..b73cd86579e20 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -2973,8 +2973,8 @@ void tools::addMCModel(const Driver &D, const llvm::opt::ArgList &Args,
} else if (Triple.getArch() == llvm::Triple::x86_64) {
Ok = llvm::is_contained({"small", "kernel", "medium", "large", "tiny"},
CM);
- } else if (Triple.isNVPTX() || Triple.isAMDGPU() || Triple.isSPIRV()) {
- // NVPTX/AMDGPU/SPIRV does not care about the code model and will accept
+ } else if (Triple.isOffloadingTargetGPU()) {
+ // Offloading GPU targets do not care about the code model and will accept
// whatever works for the host.
Ok = true;
} else if (Triple.isSPARC64()) {
diff --git a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
index aa43b2f5f2a1b..99e2c99759a94 100644
--- a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
+++ b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
@@ -512,7 +512,7 @@ Expected<StringRef> clang(ArrayRef<StringRef> InputFiles, const ArgList &Args) {
CmdArgs.push_back(InputFile);
// If this is CPU offloading we copy the input libraries.
- if (!Triple.isAMDGPU() && !Triple.isNVPTX() && !Triple.isSPIRV()) {
+ if (!Triple.isOffloadingTargetGPU()) {
CmdArgs.push_back("-Wl,-Bsymbolic");
CmdArgs.push_back("-shared");
ArgStringList LinkerArgs;
diff --git a/llvm/include/llvm/TargetParser/Triple.h b/llvm/include/llvm/TargetParser/Triple.h
index 09c0d223d9b4d..0885d2a44245a 100644
--- a/llvm/include/llvm/TargetParser/Triple.h
+++ b/llvm/include/llvm/TargetParser/Triple.h
@@ -1109,6 +1109,11 @@ class Triple {
Env == llvm::Triple::EABIHF;
}
+ /// Tests if the target represents a GPU which can be offloaded to.
+ bool isOffloadingTargetGPU() const {
+ return isAMDGPU() || isNVPTX() || isSPIRV();
+ }
+
/// Tests whether the target supports comdat
bool supportsCOMDAT() const {
return !(isOSBinFormatMachO() || isOSBinFormatXCOFF() ||
diff --git a/llvm/include/llvm/Transforms/IPO/Attributor.h b/llvm/include/llvm/Transforms/IPO/Attributor.h
index 995ee54a73ce4..5c2c707e24a14 100644
--- a/llvm/include/llvm/Transforms/IPO/Attributor.h
+++ b/llvm/include/llvm/Transforms/IPO/Attributor.h
@@ -1338,9 +1338,7 @@ struct InformationCache {
bool stackIsAccessibleByOtherThreads() { return !targetIsGPU(); }
/// Return true if the target is a GPU.
- bool targetIsGPU() {
- return TargetTriple.isAMDGPU() || TargetTriple.isNVPTX();
- }
+ bool targetIsGPU() { return TargetTriple.isOffloadingTargetGPU(); }
/// Return all functions that might be called indirectly, only valid for
/// closed world modules (see isClosedWorldModule).
diff --git a/llvm/lib/Transforms/IPO/Attributor.cpp b/llvm/lib/Transforms/IPO/Attributor.cpp
index a1e1a51b201b0..ba9148d2aedc7 100644
--- a/llvm/lib/Transforms/IPO/Attributor.cpp
+++ b/llvm/lib/Transforms/IPO/Attributor.cpp
@@ -199,7 +199,7 @@ ChangeStatus &llvm::operator&=(ChangeStatus &L, ChangeStatus R) {
bool AA::isGPU(const Module &M) {
Triple T(M.getTargetTriple());
- return T.isAMDGPU() || T.isNVPTX();
+ return T.isOffloadingTargetGPU();
}
bool AA::isNoSyncInst(Attributor &A, const Instruction &I,
@@ -3296,7 +3296,7 @@ InformationCache::getIndirectlyCallableFunctions(Attributor &A) const {
}
std::optional<unsigned> InformationCache::getFlatAddressSpace() const {
- if (TargetTriple.isAMDGPU() || TargetTriple.isNVPTX())
+ if (TargetTriple.isOffloadingTargetGPU())
return 0;
return std::nullopt;
}
diff --git a/llvm/lib/Transforms/Instrumentation/SanitizerBinaryMetadata.cpp b/llvm/lib/Transforms/Instrumentation/SanitizerBinaryMetadata.cpp
index 1759b95ddbc30..85cfff005cb53 100644
--- a/llvm/lib/Transforms/Instrumentation/SanitizerBinaryMetadata.cpp
+++ b/llvm/lib/Transforms/Instrumentation/SanitizerBinaryMetadata.cpp
@@ -133,7 +133,7 @@ class SanitizerBinaryMetadata {
VersionStr(utostr(getVersion())), IRB(M.getContext()) {
// FIXME: Make it work with other formats.
assert(TargetTriple.isOSBinFormatELF() && "ELF only");
- assert(!(TargetTriple.isNVPTX() || TargetTriple.isAMDGPU()) &&
+ assert(!(TargetTriple.isOffloadingTargetGPU()) &&
"Device targets are not supported");
}
>From e42fbd4f9c1c0f07197e49a204c3b81992586fa9 Mon Sep 17 00:00:00 2001
From: "Sarnie, Nick" <nick.sarnie at intel.com>
Date: Thu, 13 Feb 2025 07:15:33 -0800
Subject: [PATCH 2/2] rename function
Signed-off-by: Sarnie, Nick <nick.sarnie at intel.com>
---
clang/lib/CodeGen/CGOpenMPRuntime.cpp | 4 ++--
clang/lib/CodeGen/CodeGenModule.cpp | 2 +-
clang/lib/CodeGen/CodeGenModule.h | 2 +-
clang/lib/Driver/Driver.cpp | 2 +-
clang/lib/Driver/ToolChains/Clang.cpp | 4 ++--
clang/lib/Driver/ToolChains/CommonArgs.cpp | 2 +-
clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp | 2 +-
llvm/include/llvm/TargetParser/Triple.h | 2 +-
llvm/include/llvm/Transforms/IPO/Attributor.h | 2 +-
llvm/lib/Transforms/IPO/Attributor.cpp | 4 ++--
.../Transforms/Instrumentation/SanitizerBinaryMetadata.cpp | 2 +-
11 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/clang/lib/CodeGen/CGOpenMPRuntime.cpp b/clang/lib/CodeGen/CGOpenMPRuntime.cpp
index 32cba453b3d10..246b1981652a6 100644
--- a/clang/lib/CodeGen/CGOpenMPRuntime.cpp
+++ b/clang/lib/CodeGen/CGOpenMPRuntime.cpp
@@ -2625,7 +2625,7 @@ void CGOpenMPRuntime::emitDistributeStaticInit(
llvm::Value *ThreadId = getThreadID(CGF, Loc);
llvm::FunctionCallee StaticInitFunction;
bool isGPUDistribute = CGM.getLangOpts().OpenMPIsTargetDevice &&
- CGM.getTriple().isOffloadingTargetGPU();
+ CGM.getTriple().isOffloadingTarget();
StaticInitFunction = OMPBuilder.createForStaticInitFunction(
Values.IVSize, Values.IVSigned, isGPUDistribute);
@@ -2655,7 +2655,7 @@ void CGOpenMPRuntime::emitForStaticFinish(CodeGenFunction &CGF,
auto DL = ApplyDebugLocation::CreateDefaultArtificial(CGF, Loc);
if (isOpenMPDistributeDirective(DKind) &&
CGM.getLangOpts().OpenMPIsTargetDevice &&
- CGM.getTriple().isOffloadingTargetGPU())
+ CGM.getTriple().isOffloadingTarget())
CGF.EmitRuntimeCall(
OMPBuilder.getOrCreateRuntimeFunction(
CGM.getModule(), OMPRTL___kmpc_distribute_static_fini),
diff --git a/clang/lib/CodeGen/CodeGenModule.cpp b/clang/lib/CodeGen/CodeGenModule.cpp
index 99c8f6e547e87..53529726a2ac9 100644
--- a/clang/lib/CodeGen/CodeGenModule.cpp
+++ b/clang/lib/CodeGen/CodeGenModule.cpp
@@ -842,7 +842,7 @@ static void setVisibilityFromDLLStorageClass(const clang::LangOptions &LO,
static bool isStackProtectorOn(const LangOptions &LangOpts,
const llvm::Triple &Triple,
clang::LangOptions::StackProtectorMode Mode) {
- if (Triple.isOffloadingTargetGPU())
+ if (Triple.isOffloadingTarget())
return false;
return LangOpts.getStackProtector() == Mode;
}
diff --git a/clang/lib/CodeGen/CodeGenModule.h b/clang/lib/CodeGen/CodeGenModule.h
index f197c420f6d44..ec26a1bfa6011 100644
--- a/clang/lib/CodeGen/CodeGenModule.h
+++ b/clang/lib/CodeGen/CodeGenModule.h
@@ -1067,7 +1067,7 @@ class CodeGenModule : public CodeGenTypeCache {
bool shouldEmitRTTI(bool ForEH = false) {
return (ForEH || getLangOpts().RTTI) && !getLangOpts().CUDAIsDevice &&
!(getLangOpts().OpenMP && getLangOpts().OpenMPIsTargetDevice &&
- getTriple().isOffloadingTargetGPU());
+ getTriple().isOffloadingTarget());
}
/// Get the address of the RTTI descriptor for the given type.
diff --git a/clang/lib/Driver/Driver.cpp b/clang/lib/Driver/Driver.cpp
index b1847322add16..3014e7f77e43e 100644
--- a/clang/lib/Driver/Driver.cpp
+++ b/clang/lib/Driver/Driver.cpp
@@ -3351,7 +3351,7 @@ class OffloadingActionBuilder final {
const ToolChain *HostTC = C.getSingleOffloadToolChain<Action::OFK_Host>();
assert(HostTC && "No toolchain for host compilation.");
- if (HostTC->getTriple().isOffloadingTargetGPU()) {
+ if (HostTC->getTriple().isOffloadingTarget()) {
// We do not support targeting offloading GPUs for host compilation.
// Throw an error and abort pipeline construction early so we don't trip
// asserts that assume device-side compilation.
diff --git a/clang/lib/Driver/ToolChains/Clang.cpp b/clang/lib/Driver/ToolChains/Clang.cpp
index b25a15338d9ca..8642ca9e8ebfd 100644
--- a/clang/lib/Driver/ToolChains/Clang.cpp
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
@@ -1133,7 +1133,7 @@ void Clang::AddPreprocessingOptions(Compilation &C, const JobAction &JA,
if (JA.isDeviceOffloading(Action::OFK_OpenMP) &&
!Args.hasArg(options::OPT_nostdinc) &&
!Args.hasArg(options::OPT_nogpuinc) &&
- getToolChain().getTriple().isOffloadingTargetGPU()) {
+ getToolChain().getTriple().isOffloadingTarget()) {
if (!Args.hasArg(options::OPT_nobuiltininc)) {
// Add openmp_wrappers/* to our system include path. This lets us wrap
// standard library headers.
@@ -1320,7 +1320,7 @@ void Clang::AddPreprocessingOptions(Compilation &C, const JobAction &JA,
// Without an offloading language we will include these headers directly.
// Offloading languages will instead only use the declarations stored in
// the resource directory at clang/lib/Headers/llvm_libc_wrappers.
- if (getToolChain().getTriple().isOffloadingTargetGPU() &&
+ if (getToolChain().getTriple().isOffloadingTarget() &&
C.getActiveOffloadKinds() == Action::OFK_None) {
SmallString<128> P(llvm::sys::path::parent_path(D.Dir));
llvm::sys::path::append(P, "include");
diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
index b73cd86579e20..9d0728bd24438 100644
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
@@ -2973,7 +2973,7 @@ void tools::addMCModel(const Driver &D, const llvm::opt::ArgList &Args,
} else if (Triple.getArch() == llvm::Triple::x86_64) {
Ok = llvm::is_contained({"small", "kernel", "medium", "large", "tiny"},
CM);
- } else if (Triple.isOffloadingTargetGPU()) {
+ } else if (Triple.isOffloadingTarget()) {
// Offloading GPU targets do not care about the code model and will accept
// whatever works for the host.
Ok = true;
diff --git a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
index 99e2c99759a94..3dbeb1691568c 100644
--- a/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
+++ b/clang/tools/clang-linker-wrapper/ClangLinkerWrapper.cpp
@@ -512,7 +512,7 @@ Expected<StringRef> clang(ArrayRef<StringRef> InputFiles, const ArgList &Args) {
CmdArgs.push_back(InputFile);
// If this is CPU offloading we copy the input libraries.
- if (!Triple.isOffloadingTargetGPU()) {
+ if (!Triple.isOffloadingTarget()) {
CmdArgs.push_back("-Wl,-Bsymbolic");
CmdArgs.push_back("-shared");
ArgStringList LinkerArgs;
diff --git a/llvm/include/llvm/TargetParser/Triple.h b/llvm/include/llvm/TargetParser/Triple.h
index 0885d2a44245a..fcc488046ec70 100644
--- a/llvm/include/llvm/TargetParser/Triple.h
+++ b/llvm/include/llvm/TargetParser/Triple.h
@@ -1110,7 +1110,7 @@ class Triple {
}
/// Tests if the target represents a GPU which can be offloaded to.
- bool isOffloadingTargetGPU() const {
+ bool isOffloadingTarget() const {
return isAMDGPU() || isNVPTX() || isSPIRV();
}
diff --git a/llvm/include/llvm/Transforms/IPO/Attributor.h b/llvm/include/llvm/Transforms/IPO/Attributor.h
index 5c2c707e24a14..52e8aa511d5df 100644
--- a/llvm/include/llvm/Transforms/IPO/Attributor.h
+++ b/llvm/include/llvm/Transforms/IPO/Attributor.h
@@ -1338,7 +1338,7 @@ struct InformationCache {
bool stackIsAccessibleByOtherThreads() { return !targetIsGPU(); }
/// Return true if the target is a GPU.
- bool targetIsGPU() { return TargetTriple.isOffloadingTargetGPU(); }
+ bool targetIsGPU() { return TargetTriple.isOffloadingTarget(); }
/// Return all functions that might be called indirectly, only valid for
/// closed world modules (see isClosedWorldModule).
diff --git a/llvm/lib/Transforms/IPO/Attributor.cpp b/llvm/lib/Transforms/IPO/Attributor.cpp
index ba9148d2aedc7..21efd2727584b 100644
--- a/llvm/lib/Transforms/IPO/Attributor.cpp
+++ b/llvm/lib/Transforms/IPO/Attributor.cpp
@@ -199,7 +199,7 @@ ChangeStatus &llvm::operator&=(ChangeStatus &L, ChangeStatus R) {
bool AA::isGPU(const Module &M) {
Triple T(M.getTargetTriple());
- return T.isOffloadingTargetGPU();
+ return T.isOffloadingTarget();
}
bool AA::isNoSyncInst(Attributor &A, const Instruction &I,
@@ -3296,7 +3296,7 @@ InformationCache::getIndirectlyCallableFunctions(Attributor &A) const {
}
std::optional<unsigned> InformationCache::getFlatAddressSpace() const {
- if (TargetTriple.isOffloadingTargetGPU())
+ if (TargetTriple.isOffloadingTarget())
return 0;
return std::nullopt;
}
diff --git a/llvm/lib/Transforms/Instrumentation/SanitizerBinaryMetadata.cpp b/llvm/lib/Transforms/Instrumentation/SanitizerBinaryMetadata.cpp
index 85cfff005cb53..48bc08b2c9d5a 100644
--- a/llvm/lib/Transforms/Instrumentation/SanitizerBinaryMetadata.cpp
+++ b/llvm/lib/Transforms/Instrumentation/SanitizerBinaryMetadata.cpp
@@ -133,7 +133,7 @@ class SanitizerBinaryMetadata {
VersionStr(utostr(getVersion())), IRB(M.getContext()) {
// FIXME: Make it work with other formats.
assert(TargetTriple.isOSBinFormatELF() && "ELF only");
- assert(!(TargetTriple.isOffloadingTargetGPU()) &&
+ assert(!(TargetTriple.isOffloadingTarget()) &&
"Device targets are not supported");
}
More information about the llvm-commits
mailing list