9#ifndef LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_MINGW_H
10#define LLVM_CLANG_LIB_DRIVER_TOOLCHAINS_MINGW_H
17#include "llvm/Support/ErrorOr.h"
33 const llvm::opt::ArgList &TCArgs,
34 const char *LinkingOutput)
const override;
46 const llvm::opt::ArgList &TCArgs,
47 const char *LinkingOutput)
const override;
50 void AddLibGCC(
const llvm::opt::ArgList &Args,
51 llvm::opt::ArgStringList &CmdArgs)
const;
61 const llvm::opt::ArgList &Args);
63 static void fixTripleArch(
const Driver &D, llvm::Triple &Triple,
64 const llvm::opt::ArgList &Args);
66 bool HasNativeLLVMSupport()
const override;
68 bool IsIntegratedAssemblerDefault()
const override;
70 getDefaultUnwindTableLevel(
const llvm::opt::ArgList &Args)
const override;
71 bool isPICDefault()
const override;
72 bool isPIEDefault(
const llvm::opt::ArgList &Args)
const override;
73 bool isPICDefaultForced()
const override;
77 llvm::ExceptionHandling GetExceptionModel(
78 const llvm::opt::ArgList &Args)
const override;
81 AddClangSystemIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
82 llvm::opt::ArgStringList &CC1Args)
const override;
84 addClangTargetOptions(
const llvm::opt::ArgList &DriverArgs,
85 llvm::opt::ArgStringList &CC1Args,
87 void AddClangCXXStdlibIncludeArgs(
88 const llvm::opt::ArgList &DriverArgs,
89 llvm::opt::ArgStringList &CC1Args)
const override;
91 void AddCudaIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
92 llvm::opt::ArgStringList &CC1Args)
const override;
93 void AddHIPIncludeArgs(
const llvm::opt::ArgList &DriverArgs,
94 llvm::opt::ArgStringList &CC1Args)
const override;
96 void printVerboseInfo(raw_ostream &OS)
const override;
102 Tool *buildLinker()
const override;
103 Tool *buildAssembler()
const override;
110 std::string GccLibDir;
113 std::string SubdirName;
114 std::string TripleDirName;
115 mutable std::unique_ptr<tools::gcc::Preprocessor>
Preprocessor;
116 mutable std::unique_ptr<tools::gcc::Compiler> Compiler;
117 void findGccLibDir(
const llvm::Triple &LiteralTriple);
119 bool NativeLLVMSupport;
Engages in a tight little dance with the lexer to efficiently preprocess tokens.
Compilation - A set of tasks to perform for a single driver invocation.
A class to find a viable CUDA installation.
Driver - Encapsulate logic for constructing compilation processes from a set of gcc-driver-like comma...
A class to find a viable ROCM installation TODO: Generalize to handle libclc.