15#include "llvm/ADT/STLExtras.h"
24 const llvm::Triple &Triple,
36 const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args,
41 "Only OpenMP offloading kinds are supported.");
43 if (!DriverArgs.hasFlag(options::OPT_offloadlib, options::OPT_no_offloadlib,
47 for (
auto BCFile :
getDeviceLibs(DriverArgs, DeviceOffloadingKind)) {
48 CC1Args.push_back(BCFile.ShouldInternalize ?
"-mlink-builtin-bitcode"
49 :
"-mlink-bitcode-file");
50 CC1Args.push_back(DriverArgs.MakeArgString(BCFile.Path));
59 const llvm::opt::DerivedArgList &Args, StringRef BoundArch,
65 DAL =
new DerivedArgList(Args.getBaseArgs());
72 if (DAL->hasArg(options::OPT_fsanitize_EQ))
73 DAL->claimAllArgs(options::OPT_fsanitize_EQ);
77 !llvm::is_contained(*DAL, A))
80 if (!BoundArch.empty()) {
81 DAL->eraseArg(options::OPT_march_EQ);
82 DAL->AddJoinedArg(
nullptr, Opts.getOption(options::OPT_march_EQ),
90 ArgStringList &CC1Args)
const {
101 const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CC1Args)
const {
106 const ArgList &DriverArgs, ArgStringList &CC1Args)
const {
111 ArgStringList &CC1Args)
const {
130 const ArgList &Args)
const {
136 const llvm::opt::ArgList &Args,
138 if (!Args.hasFlag(options::OPT_offloadlib, options::OPT_no_offloadlib,
true))
142 getTriple(), Args.getLastArgValue(options::OPT_march_EQ));
147 BCLibs.emplace_back(BCLib);
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...
const llvm::opt::OptTable & getOpts() const
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.