62 const llvm::opt::ArgList &Args);
67 bool isPIEDefault(
const llvm::opt::ArgList &Args)
const override;
74 return getTriple().isOSBinFormatCOFF() ? llvm::codegenoptions::DIF_CodeView
75 : llvm::codegenoptions::DIF_DWARF;
81 return llvm::DebuggerKind::Default;
88 std::string getSubDirectoryPath(llvm::SubDirectoryType
Type,
89 llvm::StringRef SubdirParent =
"")
const;
90 std::string getSubDirectoryPath(llvm::SubDirectoryType
Type,
91 llvm::Triple::ArchType TargetArch)
const;
94 return VSLayout == llvm::ToolsetLayout::VS2017OrNewer;
98 AddClangSystemIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
99 llvm::opt::ArgStringList &CC1Args)
const override;
101 GetCXXStdlibName(
const llvm::opt::ArgList &DriverArgs)
const override;
102 void AddClangCXXStdlibIncludeArgs(
103 const llvm::opt::ArgList &DriverArgs,
104 llvm::opt::ArgStringList &CC1Args)
const override;
106 void AddCudaIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
107 llvm::opt::ArgStringList &CC1Args)
const override;
109 void AddHIPIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
110 llvm::opt::ArgStringList &CC1Args)
const override;
112 void addOffloadRTLibs(
unsigned ActiveKinds,
const llvm::opt::ArgList &Args,
113 llvm::opt::ArgStringList &CmdArgs)
const override;
115 void addSYCLIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
116 llvm::opt::ArgStringList &CC1Args)
const override;
118 bool getWindowsSDKLibraryPath(
119 const llvm::opt::ArgList &Args, std::string &path)
const;
120 bool getUniversalCRTLibraryPath(
const llvm::opt::ArgList &Args,
121 std::string &path)
const;
122 bool useUniversalCRT()
const;
124 computeMSVCVersion(
const Driver *D,
125 const llvm::opt::ArgList &Args)
const override;
127 std::string ComputeEffectiveClangTriple(
const llvm::opt::ArgList &Args,
134 void printVerboseInfo(raw_ostream &OS)
const override;
139 addClangTargetOptions(
const llvm::opt::ArgList &DriverArgs,
140 llvm::opt::ArgStringList &CC1Args,
BoundArch BA,
144 void AddMSVCStdlibMultilibIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
145 llvm::opt::ArgStringList &CC1Args,
146 bool HonorNostdincxx)
const;
147 void AddMSVCStdlibIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
148 llvm::opt::ArgStringList &CC1Args)
const;
150 void AddSystemIncludeWithSubfolder(
const llvm::opt::ArgList &DriverArgs,
151 llvm::opt::ArgStringList &CC1Args,
152 const std::string &folder,
153 const Twine &subfolder1,
154 const Twine &subfolder2 =
"",
155 const Twine &subfolder3 =
"")
const;
158 Tool *buildLinker()
const override;
159 Tool *buildAssembler()
const override;
162 std::optional<llvm::StringRef> WinSdkDir, WinSdkVersion, WinSysRoot;
163 std::string VCToolChainPath;
164 llvm::ToolsetLayout VSLayout = llvm::ToolsetLayout::OlderVS;
168 mutable std::unique_ptr<tools::ARM64XObjcopy> Objcopy;