15#include "llvm/ADT/STLExtras.h"
24 const llvm::Triple &Triple,
34 const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args,
37 "Only OpenMP offloading kinds are supported.");
39 if (!DriverArgs.hasFlag(options::OPT_offloadlib, options::OPT_no_offloadlib,
43 for (
auto BCFile :
getDeviceLibs(DriverArgs, BA, DeviceOffloadingKind)) {
44 CC1Args.push_back(BCFile.ShouldInternalize ?
"-mlink-builtin-bitcode"
45 :
"-mlink-bitcode-file");
46 CC1Args.push_back(DriverArgs.MakeArgString(BCFile.Path));
50 if (
isUsingLTO(DriverArgs, DeviceOffloadingKind))
56 return HostTC.GetCXXStdlibType(Args);
60 const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CC1Args)
const {
61 HostTC.AddClangCXXStdlibIncludeArgs(Args, CC1Args);
65 const ArgList &DriverArgs, ArgStringList &CC1Args)
const {
66 HostTC.AddClangSystemIncludeArgs(DriverArgs, CC1Args);
70 ArgStringList &CC1Args)
const {
71 HostTC.AddIAMCUIncludeArgs(Args, CC1Args);
76 const ArgList &Args)
const {
77 return HostTC.computeMSVCVersion(D, Args);
82 const llvm::opt::ArgList &Args,
BoundArch BA,
84 if (!Args.hasFlag(options::OPT_offloadlib, options::OPT_no_offloadlib,
true))
90 DeviceOffloadingKind))
91 BCLibs.emplace_back(BCLib);
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...
The JSON file list parser is used to communicate input to InstallAPI.
llvm::StringRef getProcessorFromTargetID(const llvm::Triple &T, llvm::StringRef OffloadArch)
Get processor name from target ID.
Represents a bound architecture for offload / multiple architecture compilation.