[clang] 65de85e - [clang-sycl-linker][NFC] Refactor for backend extensibility (#192886)
via cfe-commits
cfe-commits at lists.llvm.org
Mon Apr 20 11:05:52 PDT 2026
Author: Alexey Bader
Date: 2026-04-20T11:05:47-07:00
New Revision: 65de85e8462b849b5b12897d511fffacef45e2d7
URL: https://github.com/llvm/llvm-project/commit/65de85e8462b849b5b12897d511fffacef45e2d7
DIFF: https://github.com/llvm/llvm-project/commit/65de85e8462b849b5b12897d511fffacef45e2d7.diff
LOG: [clang-sycl-linker][NFC] Refactor for backend extensibility (#192886)
Use OutputFileNameExt variable for codegen output extension.
Avoid shadowing OffloadArch type name with local variable.
Simplify codegen loop to single SplitModules assignment.
Added:
Modified:
clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp
Removed:
################################################################################
diff --git a/clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp b/clang/tools/clang-sycl-linker/ClangSYCLLinker.cpp
index 99e1a78a97bf3..c835c76788768 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,20 @@ 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