9#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_HEXAGON_H
10#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_HEXAGON_H
26 :
Tool(
"hexagon::Assembler",
"hexagon-as", TC) {}
30 void RenderExtraToolArgs(
const JobAction &JA,
31 llvm::opt::ArgStringList &CmdArgs)
const;
34 const llvm::opt::ArgList &TCArgs,
35 const char *LinkingOutput)
const override;
38class LLVM_LIBRARY_VISIBILITY
Linker final :
public Tool {
45 virtual void RenderExtraToolArgs(
const JobAction &JA,
46 llvm::opt::ArgStringList &CmdArgs)
const;
49 const llvm::opt::ArgList &TCArgs,
50 const char *LinkingOutput)
const override;
54 const llvm::opt::ArgList &Args,
55 std::vector<StringRef> &Features);
65 Tool *buildAssembler()
const override;
66 Tool *buildLinker()
const override;
72 const llvm::opt::ArgList &Args);
75 void addClangTargetOptions(
const llvm::opt::ArgList &DriverArgs,
76 llvm::opt::ArgStringList &CC1Args,
79 AddClangSystemIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
80 llvm::opt::ArgStringList &CC1Args)
const override;
81 void addLibStdCxxIncludePaths(
82 const llvm::opt::ArgList &DriverArgs,
83 llvm::opt::ArgStringList &CC1Args)
const override;
85 void addLibCxxIncludePaths(
const llvm::opt::ArgList &DriverArgs,
86 llvm::opt::ArgStringList &CC1Args)
const override;
89 return getTriple().isMusl() ?
"ld.lld" :
"hexagon-link";
92 CXXStdlibType GetCXXStdlibType(
const llvm::opt::ArgList &Args)
const override;
94 void AddCXXStdlibLibArgs(
const llvm::opt::ArgList &Args,
95 llvm::opt::ArgStringList &CmdArgs)
const override;
99 std::string getHexagonTargetDir(
100 const std::string &InstalledDir,
102 void getHexagonLibraryPaths(
const llvm::opt::ArgList &Args,
105 std::string getCompilerRTPath()
const override;
107 static bool isAutoHVXEnabled(
const llvm::opt::ArgList &Args);
108 static StringRef GetDefaultCPU();
109 static StringRef GetTargetCPUVersion(
const llvm::opt::ArgList &Args);
111 static std::optional<unsigned>
112 getSmallDataThreshold(
const llvm::opt::ArgList &Args);
static unsigned getOptimizationLevel(ArgList &Args, InputKind IK, DiagnosticsEngine &Diags)
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...
The JSON file list parser is used to communicate input to InstallAPI.