Skip to content

Commit 9a25780

Browse files
committed
Pass devicelib path to sycl-post-link
Signed-off-by: jinge90 <[email protected]>
1 parent 349d7c2 commit 9a25780

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

clang/lib/Driver/ToolChains/Clang.cpp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10947,6 +10947,21 @@ static void getNonTripleBasedSYCLPostLinkOpts(const ToolChain &TC,
1094710947

1094810948
if (allowDeviceImageDependencies(TCArgs))
1094910949
addArgs(PostLinkArgs, TCArgs, {"-allow-device-image-dependencies"});
10950+
10951+
SYCLInstallationDetector SYCLInstall(TC.getDriver());
10952+
SmallVector<SmallString<128>, 4> SpvLocCandidates;
10953+
SmallString<128> FallbackAssertName("libsycl-fallback-cassert.spv");
10954+
SYCLInstall.getSYCLDeviceLibPath(SpvLocCandidates, true);
10955+
for (const auto &SpvLoc : SpvLocCandidates) {
10956+
SmallString<128> FullLibName(SpvLoc);
10957+
llvm::sys::path::append(FullLibName, FallbackAssertName);
10958+
if (llvm::sys::fs::exists(FullLibName)) {
10959+
SmallString<128> SYCLDeviceLibDir("--device-lib-dir=");
10960+
SYCLDeviceLibDir += SpvLoc.str();
10961+
addArgs(PostLinkArgs, TCArgs, {SYCLDeviceLibDir.str()});
10962+
break;
10963+
}
10964+
}
1095010965
}
1095110966

1095210967
// On Intel targets we don't need non-kernel functions as entry points,

0 commit comments

Comments
 (0)