9#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_HEXAGON_H
10#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_HEXAGON_H
29 :
Tool(
"hexagon::Assembler",
"hexagon-as", TC) {}
33 void RenderExtraToolArgs(
const JobAction &JA,
34 llvm::opt::ArgStringList &CmdArgs)
const;
37 const llvm::opt::ArgList &TCArgs,
38 const char *LinkingOutput)
const override;
41class LLVM_LIBRARY_VISIBILITY
Linker final :
public Tool {
48 void RenderExtraToolArgs(
const JobAction &JA,
49 llvm::opt::ArgStringList &CmdArgs)
const;
52 const llvm::opt::ArgList &TCArgs,
53 const char *LinkingOutput)
const override;
57 const llvm::opt::ArgList &Args,
58 std::vector<StringRef> &Features);
75 const llvm::opt::ArgList &Args);
79 llvm::opt::ArgStringList &CC1Args,
83 llvm::opt::ArgStringList &CC1Args)
const override;
85 const llvm::opt::ArgList &DriverArgs,
86 llvm::opt::ArgStringList &CC1Args)
const override;
89 llvm::opt::ArgStringList &CC1Args)
const override;
92 return getTriple().isMusl() ?
"ld.lld" :
"hexagon-link";
96 GetRuntimeLibType(
const llvm::opt::ArgList &Args)
const override;
98 UnwindLibType GetUnwindLibType(
const llvm::opt::ArgList &Args)
const override;
100 CXXStdlibType GetCXXStdlibType(
const llvm::opt::ArgList &Args)
const override;
102 void AddCXXStdlibLibArgs(
const llvm::opt::ArgList &Args,
103 llvm::opt::ArgStringList &CmdArgs)
const override;
107 std::string getHexagonTargetDir(
108 const std::string &InstalledDir,
111 void getBaseIncludeDir(
const llvm::opt::ArgList &Args,
113 void getLibraryDir(
const llvm::opt::ArgList &Args,
115 void getHexagonLibraryPaths(
const llvm::opt::ArgList &Args,
118 std::string getCompilerRTPath()
const override;
124 static bool isAutoHVXEnabled(
const llvm::opt::ArgList &Args);
125 static StringRef GetDefaultCPU();
126 static StringRef GetTargetCPUVersion(
const llvm::opt::ArgList &Args);
128 static std::optional<unsigned>
129 getSmallDataThreshold(
const llvm::opt::ArgList &Args);
130 static std::optional<std::string>
131 GetHVXVersion(
const llvm::opt::ArgList &Args);
static StringRef getTriple(const Command &Job)
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...
SmallVector< InputInfo, 4 > InputInfoList
The JSON file list parser is used to communicate input to InstallAPI.