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,
110 bool supportsDebugInfoOption(
const llvm::opt::Arg *A)
const override;
111 void adjustDebugInfoKind(llvm::codegenoptions::DebugInfoKind &DebugInfoKind,
112 const llvm::opt::ArgList &Args)
const override;
121 getSystemGPUArchs(
const llvm::opt::ArgList &Args)
const override;
136 return &
HostTC.getTriple();
141 std::string getInputFilename(
const InputInfo &Input)
const override;
143 llvm::opt::DerivedArgList *
144 TranslateArgs(
const llvm::opt::DerivedArgList &Args, StringRef BoundArch,
147 addClangTargetOptions(
const llvm::opt::ArgList &DriverArgs,
148 llvm::opt::ArgStringList &CC1Args,
151 llvm::DenormalMode getDefaultDenormalModeForType(
152 const llvm::opt::ArgList &DriverArgs,
const JobAction &JA,
153 const llvm::fltSemantics *FPType =
nullptr)
const override;
155 void AddCudaIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
156 llvm::opt::ArgStringList &CC1Args)
const override;
158 void addClangWarningOptions(llvm::opt::ArgStringList &CC1Args)
const override;
159 CXXStdlibType GetCXXStdlibType(
const llvm::opt::ArgList &Args)
const override;
161 AddClangSystemIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
162 llvm::opt::ArgStringList &CC1Args)
const override;
163 void AddClangCXXStdlibIncludeArgs(
164 const llvm::opt::ArgList &Args,
165 llvm::opt::ArgStringList &CC1Args)
const override;
166 void AddIAMCUIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
167 llvm::opt::ArgStringList &CC1Args)
const override;
172 computeMSVCVersion(
const Driver *D,
173 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.