[clang] [clang-sycl-linker][NFC] Refactor for backend extensibility (PR #192886)
Alexey Bader via cfe-commits
cfe-commits at lists.llvm.org
Sun Apr 19 19:18:57 PDT 2026
https://github.com/bader created https://github.com/llvm/llvm-project/pull/192886
Use OutputFileNameExt variable for codegen output extension.
Avoid shadowing OffloadArch type name with local variable.
Simplify codegen loop to single SplitModules assignment.
>From d29233c857b424e6f4210d7f8ea1fd1ca9b51689 Mon Sep 17 00:00:00 2001
From: Alexey Bader <alexey.bader at intel.com>
Date: Thu, 16 Apr 2026 19:13:58 -0700
Subject: [PATCH] [clang-sycl-linker][NFC] Refactor for backend extensibility
Use OutputFileNameExt variable for codegen output extension.
Avoid shadowing OffloadArch type name with local variable.
Simplify codegen loop to single SplitModules assignment.
---
.../clang-sycl-linker/ClangSYCLLinker.cpp | 23 +++++++++++--------
1 file changed, 13 insertions(+), 10 deletions(-)
diff --git a/clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp b/clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp
index 99e1a78a97bf3..b6e35cfd16d08 100644
--- a/clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp
+++ b/clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp
@@ -450,10 +450,10 @@ static Error runAOTCompileIntelGPU(StringRef InputFile, StringRef OutputFile,
static Error runAOTCompile(StringRef InputFile, StringRef OutputFile,
const ArgList &Args) {
StringRef Arch = Args.getLastArgValue(OPT_arch_EQ);
- OffloadArch OffloadArch = StringToOffloadArch(Arch);
- if (IsIntelGPUOffloadArch(OffloadArch))
+ OffloadArch OA = StringToOffloadArch(Arch);
+ if (IsIntelGPUOffloadArch(OA))
return runAOTCompileIntelGPU(InputFile, OutputFile, Args);
- if (IsIntelCPUOffloadArch(OffloadArch))
+ if (IsIntelCPUOffloadArch(OA))
return runAOTCompileIntelCPU(InputFile, OutputFile, Args);
return createStringError(inconvertibleErrorCode(), "Unsupported arch");
@@ -501,18 +501,21 @@ Error runSYCLLink(ArrayRef<std::string> Files, const ArgList &Args) {
bool IsAOTCompileNeeded = IsIntelOffloadArch(
StringToOffloadArch(Args.getLastArgValue(OPT_arch_EQ)));
+ StringRef OutputFileNameExt = ".spv";
+
// Code generation step.
for (size_t I = 0, E = SplitModules.size(); I != E; ++I) {
StringRef Stem = OutputFile.rsplit('.').first;
- std::string SPVFile = (Stem + "_" + Twine(I) + ".spv").str();
- if (Error Err = runCodeGen(SplitModules[I], Args, SPVFile, C))
+ std::string CodeGenFile =
+ (Stem + "_" + Twine(I) + OutputFileNameExt).str();
+
+ if (Error Err = runCodeGen(SplitModules[I], Args, CodeGenFile, C))
return Err;
- if (!IsAOTCompileNeeded) {
- SplitModules[I] = SPVFile;
- } else {
- // AOT compilation step.
+
+ SplitModules[I] = CodeGenFile;
+ if (IsAOTCompileNeeded) {
std::string AOTFile = (Stem + "_" + Twine(I) + ".out").str();
- if (Error Err = runAOTCompile(SPVFile, AOTFile, Args))
+ if (Error Err = runAOTCompile(CodeGenFile, AOTFile, Args))
return Err;
SplitModules[I] = AOTFile;
}
More information about the cfe-commits
mailing list