summaryrefslogtreecommitdiff
path: root/source/compiler-core
diff options
context:
space:
mode:
Diffstat (limited to 'source/compiler-core')
-rw-r--r--source/compiler-core/slang-artifact-info.cpp6
-rw-r--r--source/compiler-core/slang-artifact-info.h6
-rw-r--r--source/compiler-core/slang-artifact.cpp1
3 files changed, 13 insertions, 0 deletions
diff --git a/source/compiler-core/slang-artifact-info.cpp b/source/compiler-core/slang-artifact-info.cpp
index 1b9209516..b67adb666 100644
--- a/source/compiler-core/slang-artifact-info.cpp
+++ b/source/compiler-core/slang-artifact-info.cpp
@@ -152,6 +152,12 @@ static const KindExtension g_cpuKindExts[] =
return info.isSet(ArtifactPayloadInfo::Flag::IsGpuNative) && info.flavor == ArtifactPayloadInfo::Flavor::Binary;
}
+/* static */bool ArtifactInfoUtil::isPayloadCpuTarget(Payload payload)
+{
+ return isPayloadCpuBinary(payload) ||
+ (payload == Payload::C || payload == Payload::CPP);
+}
+
/* static */UnownedStringSlice ArtifactInfoUtil::getDefaultExtensionForPayload(Payload payload)
{
switch (payload)
diff --git a/source/compiler-core/slang-artifact-info.h b/source/compiler-core/slang-artifact-info.h
index 1db3712dc..e63349937 100644
--- a/source/compiler-core/slang-artifact-info.h
+++ b/source/compiler-core/slang-artifact-info.h
@@ -67,6 +67,12 @@ struct ArtifactInfoUtil
/// Returns true if the payload type is applicable to the GPU
static bool isPayloadGpuBinary(Payload payload);
+ /// True if is a CPU target
+ static bool isPayloadCpuTarget(Payload payload);
+
+ /// True if is a CPU target - either
+ static bool isCpuTarget(const ArtifactDesc& desc) { return isPayloadCpuTarget(desc.payload); }
+
/// True if is a CPU binary
static bool isCpuBinary(const ArtifactDesc& desc) { return isPayloadCpuBinary(desc.payload); }
/// True if is a GPU binary
diff --git a/source/compiler-core/slang-artifact.cpp b/source/compiler-core/slang-artifact.cpp
index dfa9e645b..5e5b93578 100644
--- a/source/compiler-core/slang-artifact.cpp
+++ b/source/compiler-core/slang-artifact.cpp
@@ -38,6 +38,7 @@ namespace Slang {
case SLANG_CUDA_SOURCE: return make(Kind::Text, Payload::CUDA, Style::Kernel, 0);
case SLANG_PTX: return make(Kind::Executable, Payload::PTX, Style::Kernel, 0);
case SLANG_OBJECT_CODE: return make(Kind::ObjectCode, Payload::HostCPU, Style::Kernel, 0);
+ case SLANG_HOST_HOST_CALLABLE: return make(Kind::Callable, Payload::HostCPU, Style::Host, 0);
default: break;
}