Please use GitHub pull requests for new patches. Phabricator shutdown timeline
Changeset View
Changeset View
Standalone View
Standalone View
clang/lib/Driver/ToolChains/AMDGPUOpenMP.cpp
Show First 20 Lines • Show All 52 Lines • ▼ Show 20 Lines | static bool checkSystemForAMDGPU(const ArgList &Args, const AMDGPUToolChain &TC, | ||||
GPUArch = ArchsOrErr->front(); | GPUArch = ArchsOrErr->front(); | ||||
return true; | return true; | ||||
} | } | ||||
} // namespace | } // namespace | ||||
AMDGPUOpenMPToolChain::AMDGPUOpenMPToolChain(const Driver &D, | AMDGPUOpenMPToolChain::AMDGPUOpenMPToolChain(const Driver &D, | ||||
const llvm::Triple &Triple, | const llvm::Triple &Triple, | ||||
const ToolChain &HostTC, | const ToolChain &HostTC, | ||||
const ArgList &Args) | const ArgList &Args, | ||||
: ROCMToolChain(D, Triple, Args), HostTC(HostTC) { | const DerivedArgList &DerivedArgs) | ||||
: ROCMToolChain(D, Triple, Args), HostTC(HostTC), DerivedArgs(DerivedArgs) { | |||||
// Lookup binaries into the driver directory, this is used to | // Lookup binaries into the driver directory, this is used to | ||||
// discover the clang-offload-bundler executable. | // discover the clang-offload-bundler executable. | ||||
getProgramPaths().push_back(getDriver().Dir); | getProgramPaths().push_back(getDriver().Dir); | ||||
} | } | ||||
void AMDGPUOpenMPToolChain::addClangTargetOptions( | void AMDGPUOpenMPToolChain::addClangTargetOptions( | ||||
const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, | const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, | ||||
Action::OffloadKind DeviceOffloadingKind) const { | Action::OffloadKind DeviceOffloadingKind) const { | ||||
▲ Show 20 Lines • Show All 114 Lines • ▼ Show 20 Lines | if (!RocmInstallation.hasDeviceLibrary()) { | ||||
getDriver().Diag(diag::err_drv_no_rocm_device_lib) << 0; | getDriver().Diag(diag::err_drv_no_rocm_device_lib) << 0; | ||||
return {}; | return {}; | ||||
} | } | ||||
StringRef GpuArch = getProcessorFromTargetID( | StringRef GpuArch = getProcessorFromTargetID( | ||||
getTriple(), Args.getLastArgValue(options::OPT_march_EQ)); | getTriple(), Args.getLastArgValue(options::OPT_march_EQ)); | ||||
SmallVector<BitCodeLibraryInfo, 12> BCLibs; | SmallVector<BitCodeLibraryInfo, 12> BCLibs; | ||||
for (auto BCLib : getCommonDeviceLibNames(Args, GpuArch.str(), | for (auto BCLib : getCommonDeviceLibNames(DerivedArgs, GpuArch.str(), | ||||
/*IsOpenMP=*/true)) | /*IsOpenMP=*/true)) | ||||
BCLibs.emplace_back(BCLib); | BCLibs.emplace_back(BCLib); | ||||
return BCLibs; | return BCLibs; | ||||
} | } |