9#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_AMDGPU_H
10#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_AMDGPU_H
17#include "llvm/ADT/SmallString.h"
18#include "llvm/TargetParser/AMDGPUTargetParser.h"
29class LLVM_LIBRARY_VISIBILITY
Linker final :
public Tool {
36 const llvm::opt::ArgList &TCArgs,
37 const char *LinkingOutput)
const override;
41 const llvm::opt::ArgList &Args,
42 std::vector<StringRef> &Features,
46 llvm::opt::ArgStringList &CmdArgs);
75 const llvm::opt::ArgList &Args,
78 bool ShouldLinkDeviceLibs =
false);
90 llvm::opt::DerivedArgList *
91 TranslateArgs(
const llvm::opt::DerivedArgList &Args,
BoundArch BA,
95 addClangTargetOptions(
const llvm::opt::ArgList &DriverArgs,
96 llvm::opt::ArgStringList &CC1Args,
BoundArch BA,
99 AddClangSystemIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
100 llvm::opt::ArgStringList &CC1Args)
const override;
104 static bool getDefaultDenormsAreZeroForTarget(llvm::AMDGPU::GPUKind GPUKind);
106 llvm::DenormalMode getDefaultDenormalModeForType(
107 const llvm::opt::ArgList &DriverArgs,
const JobAction &JA,
108 const llvm::fltSemantics *FPType =
nullptr)
const override;
110 static bool isWave64(
const llvm::opt::ArgList &DriverArgs,
111 llvm::AMDGPU::GPUKind Kind);
124 getSystemGPUArchs(
const llvm::opt::ArgList &Args)
const override;
131 getDeviceLibs(
const llvm::opt::ArgList &Args,
BoundArch BA,
134 CXXStdlibType GetCXXStdlibType(
const llvm::opt::ArgList &Args)
const override;
136 void AddClangCXXStdlibIncludeArgs(
137 const llvm::opt::ArgList &Args,
138 llvm::opt::ArgStringList &CC1Args)
const override;
140 void AddIAMCUIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
141 llvm::opt::ArgStringList &CC1Args)
const override;
143 void AddHIPIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
144 llvm::opt::ArgStringList &CC1Args)
const override;
147 computeMSVCVersion(
const Driver *D,
148 const llvm::opt::ArgList &Args)
const override;
150 LTOKind getDefaultLTOMode()
const override;
154 getLTOMode(
const llvm::opt::ArgList &Args,
159 getCommonDeviceLibNames(
const llvm::opt::ArgList &DriverArgs,
160 llvm::StringRef TargetID, llvm::StringRef GPUArch,
182 StringRef
getGPUArch(
const llvm::opt::ArgList &DriverArgs)
const;
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...
LTOKind
Describes the kind of LTO mode selected via -f(no-)?lto(=.*)? options.
SmallVector< InputInfo, 4 > InputInfoList
The JSON file list parser is used to communicate input to InstallAPI.
Represents a bound architecture for offload / multiple architecture compilation.