clang 20.0.0git
|
#include "Gnu.h"
#include "Arch/ARM.h"
#include "Arch/CSKY.h"
#include "Arch/LoongArch.h"
#include "Arch/Mips.h"
#include "Arch/PPC.h"
#include "Arch/RISCV.h"
#include "Arch/Sparc.h"
#include "Arch/SystemZ.h"
#include "CommonArgs.h"
#include "Linux.h"
#include "clang/Config/config.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/DriverDiagnostic.h"
#include "clang/Driver/MultilibBuilder.h"
#include "clang/Driver/Options.h"
#include "clang/Driver/Tool.h"
#include "clang/Driver/ToolChain.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Support/CodeGen.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/VirtualFileSystem.h"
#include "llvm/TargetParser/RISCVISAInfo.h"
#include "llvm/TargetParser/TargetParser.h"
#include <system_error>
Go to the source code of this file.
Functions | |
static bool | forwardToGCC (const Option &O) |
static void | normalizeCPUNamesForAssembler (const ArgList &Args, ArgStringList &CmdArgs) |
static const char * | getLDMOption (const llvm::Triple &T, const ArgList &Args) |
static bool | getStaticPIE (const ArgList &Args, const ToolChain &TC) |
static bool | getStatic (const ArgList &Args) |
static bool | isSoftFloatABI (const ArgList &Args) |
static bool | isArmOrThumbArch (llvm::Triple::ArchType Arch) |
static bool | isMipsEL (llvm::Triple::ArchType Arch) |
static bool | isMips16 (const ArgList &Args) |
static bool | isMicroMips (const ArgList &Args) |
static bool | isMSP430 (llvm::Triple::ArchType Arch) |
static bool | findMipsCsMultilibs (const Multilib::flags_list &Flags, FilterNonExistent &NonExistent, DetectedMultilibs &Result) |
static bool | findMipsAndroidMultilibs (llvm::vfs::FileSystem &VFS, StringRef Path, const Multilib::flags_list &Flags, FilterNonExistent &NonExistent, DetectedMultilibs &Result) |
static bool | findMipsMuslMultilibs (const Multilib::flags_list &Flags, FilterNonExistent &NonExistent, DetectedMultilibs &Result) |
static bool | findMipsMtiMultilibs (const Multilib::flags_list &Flags, FilterNonExistent &NonExistent, DetectedMultilibs &Result) |
static bool | findMipsImgMultilibs (const Multilib::flags_list &Flags, FilterNonExistent &NonExistent, DetectedMultilibs &Result) |
static void | findAndroidArmMultilibs (const Driver &D, const llvm::Triple &TargetTriple, StringRef Path, const ArgList &Args, DetectedMultilibs &Result) |
static bool | findMSP430Multilibs (const Driver &D, const llvm::Triple &TargetTriple, StringRef Path, const ArgList &Args, DetectedMultilibs &Result) |
static void | findCSKYMultilibs (const Driver &D, const llvm::Triple &TargetTriple, StringRef Path, const ArgList &Args, DetectedMultilibs &Result) |
static bool | selectRISCVMultilib (const MultilibSet &RISCVMultilibSet, StringRef Arch, const Multilib::flags_list &Flags, llvm::SmallVectorImpl< Multilib > &SelectedMultilibs) |
Extend the multi-lib re-use selection mechanism for RISC-V. | |
static void | findRISCVBareMetalMultilibs (const Driver &D, const llvm::Triple &TargetTriple, StringRef Path, const ArgList &Args, DetectedMultilibs &Result) |
static void | findRISCVMultilibs (const Driver &D, const llvm::Triple &TargetTriple, StringRef Path, const ArgList &Args, DetectedMultilibs &Result) |
static bool | findBiarchMultilibs (const Driver &D, const llvm::Triple &TargetTriple, StringRef Path, const ArgList &Args, bool NeedsBiarchSuffix, DetectedMultilibs &Result) |
static llvm::StringRef | getGCCToolchainDir (const ArgList &Args, llvm::StringRef SysRoot) |
|
static |
Definition at line 1593 of file Gnu.cpp.
References D, clang::driver::MultilibSetBuilder::Either(), clang::driver::MultilibSet::FilterOut(), clang::driver::MultilibBuilder::flag(), clang::driver::MultilibSetBuilder::makeMultilibSet(), Path, clang::Result, and clang::driver::MultilibSet::select().
|
static |
Definition at line 1944 of file Gnu.cpp.
References D, clang::Default, clang::driver::MultilibBuilder::flag(), clang::driver::MultilibBuilder::gccSuffix(), clang::driver::MultilibBuilder::makeMultilib(), Path, clang::Result, and clang::UNKNOWN.
|
static |
Definition at line 1664 of file Gnu.cpp.
References D, clang::driver::MultilibSetBuilder::Either(), clang::driver::MultilibSet::FilterOut(), clang::driver::MultilibBuilder::flag(), clang::driver::tools::csky::getCSKYArchName(), clang::driver::tools::csky::getCSKYFloatABI(), clang::driver::tools::csky::Hard, clang::driver::MultilibSetBuilder::makeMultilibSet(), clang::driver::MultilibSetBuilder::Maybe(), Path, clang::Result, clang::driver::MultilibSet::select(), clang::driver::tools::csky::Soft, and clang::driver::tools::csky::SoftFP.
|
static |
|
static |
Definition at line 1044 of file Gnu.cpp.
References clang::driver::MultilibSetBuilder::Either(), clang::driver::MultilibSetBuilder::FilterOut(), clang::driver::MultilibSet::FilterOut(), clang::driver::MultilibBuilder::flag(), clang::driver::MultilibBuilder::gccSuffix(), clang::driver::Multilib::includeSuffix(), clang::driver::MultilibSetBuilder::makeMultilibSet(), clang::driver::MultilibSetBuilder::Maybe(), clang::Result, clang::driver::MultilibSet::setIncludeDirsCallback(), and clang::driver::MultilibSet::size().
|
static |
Definition at line 1414 of file Gnu.cpp.
References clang::driver::MultilibSetBuilder::Either(), clang::driver::MultilibSet::FilterOut(), clang::driver::MultilibBuilder::flag(), clang::driver::Multilib::gccSuffix(), clang::driver::Multilib::includeSuffix(), clang::driver::MultilibSetBuilder::makeMultilibSet(), clang::driver::MultilibSetBuilder::Maybe(), clang::driver::MultilibBuilder::osSuffix(), clang::Result, and clang::driver::MultilibSet::setIncludeDirsCallback().
|
static |
Definition at line 1228 of file Gnu.cpp.
References clang::driver::MultilibSetBuilder::Either(), clang::driver::MultilibSetBuilder::FilterOut(), clang::driver::MultilibSet::FilterOut(), clang::driver::MultilibBuilder::flag(), clang::driver::Multilib::gccSuffix(), clang::driver::Multilib::includeSuffix(), clang::driver::MultilibSetBuilder::makeMultilibSet(), clang::driver::MultilibSetBuilder::Maybe(), clang::driver::MultilibBuilder::osSuffix(), clang::Result, and clang::driver::MultilibSet::setIncludeDirsCallback().
|
static |
Definition at line 1194 of file Gnu.cpp.
References clang::driver::MultilibSetBuilder::Either(), clang::driver::MultilibBuilder::flag(), clang::driver::MultilibSetBuilder::makeMultilibSet(), clang::driver::Multilib::osSuffix(), clang::driver::MultilibBuilder::osSuffix(), clang::Result, clang::driver::MultilibSet::select(), and clang::driver::MultilibSet::setIncludeDirsCallback().
|
static |
Definition at line 1636 of file Gnu.cpp.
References D, clang::driver::MultilibBuilder::flag(), clang::driver::MultilibBuilder::makeMultilib(), Path, and clang::Result.
|
static |
Definition at line 1846 of file Gnu.cpp.
References D, clang::driver::MultilibSetBuilder::Either(), clang::driver::MultilibSet::FilterOut(), clang::driver::MultilibBuilder::flag(), clang::driver::Multilib::gccSuffix(), clang::driver::tools::riscv::getRISCVABI(), clang::driver::tools::riscv::getRISCVArch(), clang::driver::MultilibSetBuilder::makeMultilibSet(), Path, clang::Result, selectRISCVMultilib(), and clang::driver::MultilibSet::setFilePathsCallback().
Referenced by findRISCVMultilibs().
|
static |
Definition at line 1902 of file Gnu.cpp.
References D, clang::driver::MultilibSetBuilder::Either(), clang::driver::MultilibSetBuilder::FilterOut(), findRISCVBareMetalMultilibs(), clang::driver::MultilibBuilder::flag(), clang::driver::tools::riscv::getRISCVABI(), Path, clang::Result, and clang::driver::MultilibSet::select().
|
static |
Definition at line 46 of file Gnu.cpp.
References clang::driver::options::LinkerInput, and clang::driver::options::LinkOption.
Referenced by clang::driver::tools::gcc::Common::ConstructJob().
|
static |
Definition at line 2195 of file Gnu.cpp.
Referenced by clang::driver::toolchains::Generic_GCC::GCCInstallationDetector::init().
|
static |
Definition at line 224 of file Gnu.cpp.
References clang::driver::tools::mips::hasMipsAbiArg(), clang::driver::tools::arm::isARMBigEndian(), and clang::T.
Referenced by clang::driver::tools::gnutools::Linker::ConstructJob().
|
static |
Definition at line 308 of file Gnu.cpp.
Referenced by clang::driver::tools::gnutools::Linker::ConstructJob().
Definition at line 296 of file Gnu.cpp.
References D, and clang::driver::ToolChain::getDriver().
Referenced by clang::driver::tools::gnutools::Linker::ConstructJob().
|
static |
|
static |
Definition at line 56 of file Gnu.cpp.
Referenced by clang::driver::tools::gnutools::Assembler::ConstructJob().
|
static |
Extend the multi-lib re-use selection mechanism for RISC-V.
This function will try to re-use multi-lib if they are compatible. Definition of compatible:
Definition at line 1740 of file Gnu.cpp.
References clang::driver::MultilibSetBuilder::Either(), clang::driver::MultilibBuilder::flag(), clang::driver::MultilibSetBuilder::makeMultilibSet(), and clang::driver::MultilibSet::select().
Referenced by findRISCVBareMetalMultilibs().