9 #ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_SYCL_H
10 #define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_SYCL_H
24 void print(llvm::raw_ostream &OS)
const;
37 std::unique_ptr<Command> InputCommand,
40 StringRef Increment, StringRef Ext =
"out",
41 StringRef ParallelJobs =
"");
46 const llvm::Triple &TargetTriple,
61 const llvm::opt::ArgList &TCArgs,
62 const char *LinkingOutput)
const override;
68 const llvm::opt::ArgList &Args,
69 llvm::StringRef SubArchName,
70 llvm::StringRef OutputFilePrefix,
74 const char *InputFile)
const;
83 :
Tool(
"fpga::BackendCompiler",
"fpga compiler", TC) {}
89 const llvm::opt::ArgList &TCArgs,
90 const char *LinkingOutput)
const override;
96 const llvm::opt::ArgList &Args)
const;
106 :
Tool(
"gen::BackendCompiler",
"gen compiler", TC) {}
112 const llvm::opt::ArgList &TCArgs,
113 const char *LinkingOutput)
const override;
128 if (
Target.starts_with(GPUArh)) {
141 :
Tool(
"x86_64::BackendCompiler",
"x86_64 compiler", TC) {}
147 const llvm::opt::ArgList &TCArgs,
148 const char *LinkingOutput)
const override;
156 namespace toolchains {
161 const ToolChain &HostTC,
const llvm::opt::ArgList &Args);
167 llvm::opt::DerivedArgList *
168 TranslateArgs(
const llvm::opt::DerivedArgList &Args, StringRef BoundArch,
170 void addClangTargetOptions(
const llvm::opt::ArgList &DriverArgs,
171 llvm::opt::ArgStringList &CC1Args,
173 void AddImpliedTargetArgs(
const llvm::Triple &Triple,
174 const llvm::opt::ArgList &Args,
175 llvm::opt::ArgStringList &CmdArgs,
177 StringRef Device =
"")
const;
178 void TranslateBackendTargetArgs(
const llvm::Triple &Triple,
179 const llvm::opt::ArgList &Args,
180 llvm::opt::ArgStringList &CmdArgs,
181 StringRef Device =
"")
const;
182 void TranslateLinkerTargetArgs(
const llvm::Triple &Triple,
183 const llvm::opt::ArgList &Args,
184 llvm::opt::ArgStringList &CmdArgs,
185 StringRef Device =
"")
const;
186 void TranslateTargetOpt(
const llvm::Triple &Triple,
187 const llvm::opt::ArgList &Args,
188 llvm::opt::ArgStringList &CmdArgs,
189 llvm::opt::OptSpecifier Opt,
190 llvm::opt::OptSpecifier Opt_EQ,
191 StringRef Device)
const;
195 if (this->IsSYCLNativeCPU)
200 if (this->IsSYCLNativeCPU ||
201 this->HostTC.
getTriple().isWindowsMSVCEnvironment())
210 void addClangWarningOptions(llvm::opt::ArgStringList &CC1Args)
const override;
211 CXXStdlibType GetCXXStdlibType(
const llvm::opt::ArgList &Args)
const override;
213 const llvm::opt::ArgList &DriverArgs,
214 llvm::opt::ArgStringList &CC1Args);
215 void AddClangSystemIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
216 llvm::opt::ArgStringList &CC1Args)
const override;
217 void AddClangCXXStdlibIncludeArgs(
218 const llvm::opt::ArgList &Args,
219 llvm::opt::ArgStringList &CC1Args)
const override;
227 Tool *buildBackendCompiler()
const override;
228 Tool *buildLinker()
const override;
231 void TranslateGPUTargetOpt(
const llvm::opt::ArgList &Args,
232 llvm::opt::ArgStringList &CmdArgs,
233 llvm::opt::OptSpecifier Opt_EQ)
const;
239 if (
auto SYCLTargets = Args.getLastArg(options::OPT_fsycl_targets_EQ)) {
240 if (SYCLTargets->containsValue(
"native_cpu"))
247 return HostT == DevT;
251 const llvm::Triple *
const AuxTriple = TC.
getAuxTriple();
llvm::MachO::Target Target
Command - An executable path/name and argument vector to execute.
Compilation - A set of tasks to perform for a single driver invocation.
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...
void print(llvm::raw_ostream &OS) const
void getSYCLDeviceLibPath(llvm::SmallVector< llvm::SmallString< 128 >, 4 > &DeviceLibPaths) const
SYCLInstallationDetector(const Driver &D)
bool isSYCLNativeCPU(const llvm::opt::ArgList &Args)
The JSON file list parser is used to communicate input to InstallAPI.
const FunctionProtoType * T