Skip to content

Commit ee5bcac

Browse files
committed
make legacy API as static
Signed-off-by: jinge90 <[email protected]>
1 parent f0ab62d commit ee5bcac

File tree

2 files changed

+102
-105
lines changed

2 files changed

+102
-105
lines changed

clang/lib/Driver/ToolChains/SYCL.cpp

Lines changed: 102 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -426,109 +426,11 @@ static bool checkPVCDevice(std::string SingleArg, std::string &DevArg) {
426426
return false;
427427
}
428428

429-
SmallVector<std::string, 8>
430-
SYCL::getDeviceLibraries(const Compilation &C, const llvm::Triple &TargetTriple,
431-
bool IsSpirvAOT) {
432-
SmallVector<std::string, 8> LibraryList;
433-
const llvm::opt::ArgList &Args = C.getArgs();
434-
if (Args.getLastArg(options::OPT_fsycl_device_lib_EQ,
435-
options::OPT_fno_sycl_device_lib_EQ) ||
436-
Args.getLastArg(options::OPT_fsycl_device_lib_jit_link,
437-
options::OPT_fno_sycl_device_lib_jit_link))
438-
return getDeviceLibrariesLegacy(C, TargetTriple, IsSpirvAOT);
439-
440-
bool NoOffloadLib =
441-
!Args.hasFlag(options::OPT_offloadlib, options::OPT_no_offloadlib, true);
442-
if (TargetTriple.isNVPTX()) {
443-
if (!NoOffloadLib)
444-
LibraryList.push_back(
445-
Args.MakeArgString("devicelib-nvptx64-nvidia-cuda.bc"));
446-
return LibraryList;
447-
}
448-
449-
if (TargetTriple.isAMDGCN()) {
450-
if (!NoOffloadLib)
451-
LibraryList.push_back(
452-
Args.MakeArgString("devicelib-amdgcn-amd-amdhsa.bc"));
453-
return LibraryList;
454-
}
455-
456-
// Ignore no-offloadlib for NativeCPU device library, it provides some
457-
// critical builtins which must be linked with user's device image.
458-
if (TargetTriple.isNativeCPU()) {
459-
LibraryList.push_back(Args.MakeArgString("libsycl-nativecpu_utils.bc"));
460-
return LibraryList;
461-
}
462-
463-
using SYCLDeviceLibsList = SmallVector<StringRef, 8>;
464-
const SYCLDeviceLibsList SYCLDeviceLibs = {"libsycl-crt",
465-
"libsycl-complex",
466-
"libsycl-complex-fp64",
467-
"libsycl-cmath",
468-
"libsycl-cmath-fp64",
469-
#if defined(_WIN32)
470-
"libsycl-msvc-math",
471-
#endif
472-
"libsycl-imf",
473-
"libsycl-imf-fp64",
474-
"libsycl-imf-bf16",
475-
"libsycl-fallback-cassert",
476-
"libsycl-fallback-cstring",
477-
"libsycl-fallback-complex",
478-
"libsycl-fallback-complex-fp64",
479-
"libsycl-fallback-cmath",
480-
"libsycl-fallback-cmath-fp64",
481-
"libsycl-fallback-imf",
482-
"libsycl-fallback-imf-fp64",
483-
"libsycl-fallback-imf-bf16"};
484-
bool IsWindowsMSVCEnv =
485-
C.getDefaultToolChain().getTriple().isWindowsMSVCEnvironment();
486-
bool IsNewOffload = C.getDriver().getUseNewOffloadingDriver();
487-
StringRef LibSuffix = ".bc";
488-
if (IsNewOffload)
489-
// For new offload model, we use packaged .bc files.
490-
LibSuffix = IsWindowsMSVCEnv ? ".new.obj" : ".new.o";
491-
auto addLibraries = [&](const SYCLDeviceLibsList &LibsList) {
492-
for (const StringRef &Lib : LibsList) {
493-
SmallString<128> LibName(Lib);
494-
llvm::sys::path::replace_extension(LibName, LibSuffix);
495-
LibraryList.push_back(Args.MakeArgString(LibName));
496-
}
497-
};
498-
499-
if (!NoOffloadLib)
500-
addLibraries(SYCLDeviceLibs);
501-
502-
// ITT annotation libraries are linked in separately whenever the device
503-
// code instrumentation is enabled.
504-
const SYCLDeviceLibsList SYCLDeviceAnnotationLibs = {
505-
"libsycl-itt-user-wrappers", "libsycl-itt-compiler-wrappers",
506-
"libsycl-itt-stubs"};
507-
if (Args.hasFlag(options::OPT_fsycl_instrument_device_code,
508-
options::OPT_fno_sycl_instrument_device_code, true))
509-
addLibraries(SYCLDeviceAnnotationLibs);
510-
511-
const SYCLDeviceLibsList SYCLDeviceBfloat16FallbackLib = {
512-
"libsycl-fallback-bfloat16"};
513-
const SYCLDeviceLibsList SYCLDeviceBfloat16NativeLib = {
514-
"libsycl-native-bfloat16"};
515-
bool NativeBfloatLibs;
516-
bool NeedBfloatLibs = selectBfloatLibs(TargetTriple, C, NativeBfloatLibs);
517-
if (NeedBfloatLibs && !NoOffloadLib) {
518-
// Add native or fallback bfloat16 library.
519-
if (NativeBfloatLibs)
520-
addLibraries(SYCLDeviceBfloat16NativeLib);
521-
else
522-
addLibraries(SYCLDeviceBfloat16FallbackLib);
523-
}
524-
525-
return LibraryList;
526-
}
527-
528429
// TODO: remove getDeviceLibrariesLegacy when we remove deprecated options
529430
// related to sycl device library link.
530-
SmallVector<std::string, 8> SYCL::getDeviceLibrariesLegacy(
531-
const Compilation &C, const llvm::Triple &TargetTriple, bool IsSpirvAOT) {
431+
static SmallVector<std::string, 8>
432+
getDeviceLibrariesLegacy(const Compilation &C, const llvm::Triple &TargetTriple,
433+
bool IsSpirvAOT) {
532434
SmallVector<std::string, 8> LibraryList;
533435
const llvm::opt::ArgList &Args = C.getArgs();
534436

@@ -837,6 +739,105 @@ SmallVector<std::string, 8> SYCL::getDeviceLibrariesLegacy(
837739
return LibraryList;
838740
}
839741

742+
SmallVector<std::string, 8>
743+
SYCL::getDeviceLibraries(const Compilation &C, const llvm::Triple &TargetTriple,
744+
bool IsSpirvAOT) {
745+
SmallVector<std::string, 8> LibraryList;
746+
const llvm::opt::ArgList &Args = C.getArgs();
747+
if (Args.getLastArg(options::OPT_fsycl_device_lib_EQ,
748+
options::OPT_fno_sycl_device_lib_EQ) ||
749+
Args.getLastArg(options::OPT_fsycl_device_lib_jit_link,
750+
options::OPT_fno_sycl_device_lib_jit_link))
751+
return getDeviceLibrariesLegacy(C, TargetTriple, IsSpirvAOT);
752+
753+
bool NoOffloadLib =
754+
!Args.hasFlag(options::OPT_offloadlib, options::OPT_no_offloadlib, true);
755+
if (TargetTriple.isNVPTX()) {
756+
if (!NoOffloadLib)
757+
LibraryList.push_back(
758+
Args.MakeArgString("devicelib-nvptx64-nvidia-cuda.bc"));
759+
return LibraryList;
760+
}
761+
762+
if (TargetTriple.isAMDGCN()) {
763+
if (!NoOffloadLib)
764+
LibraryList.push_back(
765+
Args.MakeArgString("devicelib-amdgcn-amd-amdhsa.bc"));
766+
return LibraryList;
767+
}
768+
769+
// Ignore no-offloadlib for NativeCPU device library, it provides some
770+
// critical builtins which must be linked with user's device image.
771+
if (TargetTriple.isNativeCPU()) {
772+
LibraryList.push_back(Args.MakeArgString("libsycl-nativecpu_utils.bc"));
773+
return LibraryList;
774+
}
775+
776+
using SYCLDeviceLibsList = SmallVector<StringRef, 8>;
777+
const SYCLDeviceLibsList SYCLDeviceLibs = {"libsycl-crt",
778+
"libsycl-complex",
779+
"libsycl-complex-fp64",
780+
"libsycl-cmath",
781+
"libsycl-cmath-fp64",
782+
#if defined(_WIN32)
783+
"libsycl-msvc-math",
784+
#endif
785+
"libsycl-imf",
786+
"libsycl-imf-fp64",
787+
"libsycl-imf-bf16",
788+
"libsycl-fallback-cassert",
789+
"libsycl-fallback-cstring",
790+
"libsycl-fallback-complex",
791+
"libsycl-fallback-complex-fp64",
792+
"libsycl-fallback-cmath",
793+
"libsycl-fallback-cmath-fp64",
794+
"libsycl-fallback-imf",
795+
"libsycl-fallback-imf-fp64",
796+
"libsycl-fallback-imf-bf16"};
797+
bool IsWindowsMSVCEnv =
798+
C.getDefaultToolChain().getTriple().isWindowsMSVCEnvironment();
799+
bool IsNewOffload = C.getDriver().getUseNewOffloadingDriver();
800+
StringRef LibSuffix = ".bc";
801+
if (IsNewOffload)
802+
// For new offload model, we use packaged .bc files.
803+
LibSuffix = IsWindowsMSVCEnv ? ".new.obj" : ".new.o";
804+
auto addLibraries = [&](const SYCLDeviceLibsList &LibsList) {
805+
for (const StringRef &Lib : LibsList) {
806+
SmallString<128> LibName(Lib);
807+
llvm::sys::path::replace_extension(LibName, LibSuffix);
808+
LibraryList.push_back(Args.MakeArgString(LibName));
809+
}
810+
};
811+
812+
if (!NoOffloadLib)
813+
addLibraries(SYCLDeviceLibs);
814+
815+
// ITT annotation libraries are linked in separately whenever the device
816+
// code instrumentation is enabled.
817+
const SYCLDeviceLibsList SYCLDeviceAnnotationLibs = {
818+
"libsycl-itt-user-wrappers", "libsycl-itt-compiler-wrappers",
819+
"libsycl-itt-stubs"};
820+
if (Args.hasFlag(options::OPT_fsycl_instrument_device_code,
821+
options::OPT_fno_sycl_instrument_device_code, true))
822+
addLibraries(SYCLDeviceAnnotationLibs);
823+
824+
const SYCLDeviceLibsList SYCLDeviceBfloat16FallbackLib = {
825+
"libsycl-fallback-bfloat16"};
826+
const SYCLDeviceLibsList SYCLDeviceBfloat16NativeLib = {
827+
"libsycl-native-bfloat16"};
828+
bool NativeBfloatLibs;
829+
bool NeedBfloatLibs = selectBfloatLibs(TargetTriple, C, NativeBfloatLibs);
830+
if (NeedBfloatLibs && !NoOffloadLib) {
831+
// Add native or fallback bfloat16 library.
832+
if (NativeBfloatLibs)
833+
addLibraries(SYCLDeviceBfloat16NativeLib);
834+
else
835+
addLibraries(SYCLDeviceBfloat16FallbackLib);
836+
}
837+
838+
return LibraryList;
839+
}
840+
840841
/// Reads device config file to find information about the SYCL targets in
841842
/// `Targets`, and defines device traits macros accordingly.
842843
void SYCL::populateSYCLDeviceTraitsMacrosArgs(

clang/lib/Driver/ToolChains/SYCL.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,10 +39,6 @@ SmallVector<std::string, 8> getDeviceLibraries(const Compilation &C,
3939
const llvm::Triple &TargetTriple,
4040
bool IsSpirvAOT);
4141

42-
SmallVector<std::string, 8>
43-
getDeviceLibrariesLegacy(const Compilation &C, const llvm::Triple &TargetTriple,
44-
bool IsSpirvAOT);
45-
4642
// Populates the SYCL device traits macros.
4743
void populateSYCLDeviceTraitsMacrosArgs(
4844
Compilation &C, const llvm::opt::ArgList &Args,

0 commit comments

Comments
 (0)