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";
95 CXXStdlibType GetCXXStdlibType(
const llvm::opt::ArgList &Args)
const override;
97 void AddCXXStdlibLibArgs(
const llvm::opt::ArgList &Args,
98 llvm::opt::ArgStringList &CmdArgs)
const override;
102 std::string getHexagonTargetDir(
103 const std::string &InstalledDir,
105 void getHexagonLibraryPaths(
const llvm::opt::ArgList &Args,
108 std::string getCompilerRTPath()
const override;
110 static bool isAutoHVXEnabled(
const llvm::opt::ArgList &Args);
111 static StringRef GetDefaultCPU();
112 static StringRef GetTargetCPUVersion(
const llvm::opt::ArgList &Args);
114 static std::optional<unsigned>
115 getSmallDataThreshold(
const llvm::opt::ArgList &Args);
116 static std::optional<std::string>
117 GetHVXVersion(
const llvm::opt::ArgList &Args);
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.