Skip to content

Commit ed134e9

Browse files
committed
Augment existing Make SYCL triple function instead of creating new
1 parent 7f245a1 commit ed134e9

File tree

1 file changed

+14
-20
lines changed

1 file changed

+14
-20
lines changed

clang/lib/Driver/Driver.cpp

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -706,18 +706,6 @@ static bool isValidSYCLTriple(llvm::Triple T) {
706706
return true;
707707
}
708708

709-
// Create a triple based off of the input provided. Allow for short aliases
710-
// of known arch strings, which will be expanded to the full triple for usage
711-
// during the compilation.
712-
static llvm::Triple resolveSYCLTriple(Compilation &C, StringRef TripleStr) {
713-
SmallVector<StringRef, 4> SYCLAlias = {"spir64", "spir64_fpga",
714-
"spir64_x86_64", "spir64_gen"};
715-
if (std::find(SYCLAlias.begin(), SYCLAlias.end(), TripleStr) !=
716-
SYCLAlias.end())
717-
return C.getDriver().MakeSYCLDeviceTriple(TripleStr);
718-
return llvm::Triple(TripleStr);
719-
}
720-
721709
void Driver::CreateOffloadingDeviceToolChains(Compilation &C,
722710
InputList &Inputs) {
723711

@@ -909,7 +897,7 @@ void Driver::CreateOffloadingDeviceToolChains(Compilation &C,
909897
if (SYCLTargetsValues) {
910898
if (SYCLTargetsValues->getNumValues()) {
911899
for (StringRef Val : SYCLTargetsValues->getValues()) {
912-
llvm::Triple TT(resolveSYCLTriple(C, Val));
900+
llvm::Triple TT(MakeSYCLDeviceTriple(Val));
913901
if (!isValidSYCLTriple(TT)) {
914902
Diag(clang::diag::err_drv_invalid_sycl_target) << Val;
915903
continue;
@@ -1858,12 +1846,18 @@ void Driver::PrintHelp(bool ShowHidden) const {
18581846
}
18591847

18601848
llvm::Triple Driver::MakeSYCLDeviceTriple(StringRef TargetArch) const {
1861-
llvm::Triple TT;
1862-
TT.setArchName(TargetArch);
1863-
TT.setVendor(llvm::Triple::UnknownVendor);
1864-
TT.setOS(llvm::Triple::UnknownOS);
1865-
TT.setEnvironment(llvm::Triple::SYCLDevice);
1866-
return TT;
1849+
SmallVector<StringRef, 5> SYCLAlias = {"spir", "spir64", "spir64_fpga",
1850+
"spir64_x86_64", "spir64_gen"};
1851+
if (std::find(SYCLAlias.begin(), SYCLAlias.end(), TargetArch) !=
1852+
SYCLAlias.end()) {
1853+
llvm::Triple TT;
1854+
TT.setArchName(TargetArch);
1855+
TT.setVendor(llvm::Triple::UnknownVendor);
1856+
TT.setOS(llvm::Triple::UnknownOS);
1857+
TT.setEnvironment(llvm::Triple::SYCLDevice);
1858+
return TT;
1859+
}
1860+
return llvm::Triple(TargetArch);
18671861
}
18681862

18691863
// Print the help from any of the given tools which are used for AOT
@@ -4577,7 +4571,7 @@ class OffloadingActionBuilder final {
45774571
if (SYCLTargets) {
45784572
llvm::StringMap<StringRef> FoundNormalizedTriples;
45794573
for (const char *Val : SYCLTargets->getValues()) {
4580-
llvm::Triple TT(resolveSYCLTriple(C, Val));
4574+
llvm::Triple TT(C.getDriver().MakeSYCLDeviceTriple(Val));
45814575
std::string NormalizedName = TT.normalize();
45824576

45834577
// Make sure we don't have a duplicate triple.

0 commit comments

Comments
 (0)