9#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_CUDA_H
10#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_CUDA_H
18#include "llvm/Support/Compiler.h"
19#include "llvm/Support/VersionTuple.h"
38 const llvm::opt::ArgList &TCArgs,
39 const char *LinkingOutput)
const override;
52 const llvm::opt::ArgList &TCArgs,
53 const char *LinkingOutput)
const override;
57class LLVM_LIBRARY_VISIBILITY
Linker final :
public Tool {
65 const llvm::opt::ArgList &TCArgs,
66 const char *LinkingOutput)
const override;
70 const llvm::opt::ArgList &Args,
71 std::vector<StringRef> &Features);
81 const llvm::Triple &HostTriple,
82 const llvm::opt::ArgList &Args);
85 const llvm::opt::ArgList &Args);
87 llvm::opt::DerivedArgList *
88 TranslateArgs(
const llvm::opt::DerivedArgList &Args, StringRef BoundArch,
93 llvm::opt::ArgStringList &CC1Args,
94 llvm::StringRef BoundArch,
98 llvm::opt::ArgStringList &CC1Args)
const override;
114 bool supportsDebugInfoOption(
const llvm::opt::Arg *A)
const override;
115 void adjustDebugInfoKind(llvm::codegenoptions::DebugInfoKind &DebugInfoKind,
116 const llvm::opt::ArgList &Args)
const override;
125 getSystemGPUArchs(
const llvm::opt::ArgList &Args)
const override;
140 return &
HostTC.getTriple();
145 std::string getInputFilename(
const InputInfo &Input)
const override;
147 llvm::opt::DerivedArgList *
148 TranslateArgs(
const llvm::opt::DerivedArgList &Args, StringRef BoundArch,
151 addClangTargetOptions(
const llvm::opt::ArgList &DriverArgs,
152 llvm::opt::ArgStringList &CC1Args,
153 llvm::StringRef BoundArch,
156 llvm::DenormalMode getDefaultDenormalModeForType(
157 const llvm::opt::ArgList &DriverArgs,
const JobAction &JA,
158 const llvm::fltSemantics *FPType =
nullptr)
const override;
160 void AddCudaIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
161 llvm::opt::ArgStringList &CC1Args)
const override;
163 void addClangWarningOptions(llvm::opt::ArgStringList &CC1Args)
const override;
164 CXXStdlibType GetCXXStdlibType(
const llvm::opt::ArgList &Args)
const override;
166 AddClangSystemIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
167 llvm::opt::ArgStringList &CC1Args)
const override;
168 void AddClangCXXStdlibIncludeArgs(
169 const llvm::opt::ArgList &Args,
170 llvm::opt::ArgStringList &CC1Args)
const override;
171 void AddIAMCUIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
172 llvm::opt::ArgStringList &CC1Args)
const override;
175 getSupportedSanitizers(StringRef BoundArch,
179 computeMSVCVersion(
const Driver *D,
180 const llvm::opt::ArgList &Args)
const override;
Compilation - A set of tasks to perform for a single driver invocation.
A class to find a viable CUDA installation.
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...
SmallVector< InputInfo, 4 > InputInfoList
The JSON file list parser is used to communicate input to InstallAPI.