clang
3.7.0
|
#include "Tools.h"
#include "InputInfo.h"
#include "ToolChains.h"
#include "clang/Basic/CharInfo.h"
#include "clang/Basic/LangOptions.h"
#include "clang/Basic/ObjCRuntime.h"
#include "clang/Basic/Version.h"
#include "clang/Config/config.h"
#include "clang/Driver/Action.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/Driver.h"
#include "clang/Driver/DriverDiagnostic.h"
#include "clang/Driver/Job.h"
#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
#include "clang/Driver/ToolChain.h"
#include "clang/Driver/Util.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/ADT/Twine.h"
#include "llvm/Option/Arg.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Option/Option.h"
#include "llvm/Support/TargetParser.h"
#include "llvm/Support/Compression.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Host.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/Process.h"
#include "llvm/Support/Program.h"
#include "llvm/Support/raw_ostream.h"
Go to the source code of this file.
Classes | |
struct | EHFlags |
Enumerations | |
enum | OpenMPRuntimeKind |
Functions | |
static void | addAssemblerKPIC (const ArgList &Args, ArgStringList &CmdArgs) |
static void | CheckPreprocessingOptions (const Driver &D, const ArgList &Args) |
static void | CheckCodeGenerationOptions (const Driver &D, const ArgList &Args) |
static void | EscapeSpacesAndBackslashes (const char *Arg, SmallVectorImpl< char > &Res) |
static void | QuoteTarget (StringRef Target, SmallVectorImpl< char > &Res) |
static void | addDirectoryList (const ArgList &Args, ArgStringList &CmdArgs, const char *ArgName, const char *EnvVar) |
static void | AddLinkerInputs (const ToolChain &TC, const InputInfoList &Inputs, const ArgList &Args, ArgStringList &CmdArgs) |
static bool | isObjCAutoRefCount (const ArgList &Args) |
Determine whether Objective-C automated reference counting is enabled. More... | |
static bool | isObjCRuntimeLinked (const ArgList &Args) |
Determine whether we are linking the ObjC runtime. More... | |
static bool | forwardToGCC (const Option &O) |
static bool | isSignedCharDefault (const llvm::Triple &Triple) |
static bool | isNoCommonDefault (const llvm::Triple &Triple) |
static int | getARMSubArchVersionNumber (const llvm::Triple &Triple) |
static bool | isARMMProfile (const llvm::Triple &Triple) |
static void | getARMArchCPUFromArgs (const ArgList &Args, llvm::StringRef &Arch, llvm::StringRef &CPU, bool FromAs=false) |
static void | getARMHWDivFeatures (const Driver &D, const Arg *A, const ArgList &Args, StringRef HWDiv, std::vector< const char * > &Features) |
static void | getARMFPUFeatures (const Driver &D, const Arg *A, const ArgList &Args, StringRef FPU, std::vector< const char * > &Features) |
static void | checkARMArchName (const Driver &D, const Arg *A, const ArgList &Args, llvm::StringRef ArchName, const llvm::Triple &Triple) |
static void | checkARMCPUName (const Driver &D, const Arg *A, const ArgList &Args, llvm::StringRef CPUName, llvm::StringRef ArchName, const llvm::Triple &Triple) |
static void | getARMTargetFeatures (const Driver &D, const llvm::Triple &Triple, const ArgList &Args, std::vector< const char * > &Features, bool ForAS) |
static std::string | getAArch64TargetCPU (const ArgList &Args) |
static StringRef | getGnuCompatibleMipsABIName (StringRef ABI) |
static StringRef | getMipsFloatABI (const Driver &D, const ArgList &Args) |
static void | AddTargetFeature (const ArgList &Args, std::vector< const char * > &Features, OptSpecifier OnOpt, OptSpecifier OffOpt, StringRef FeatureName) |
static void | getMIPSTargetFeatures (const Driver &D, const llvm::Triple &Triple, const ArgList &Args, std::vector< const char * > &Features) |
static std::string | getPPCTargetCPU (const ArgList &Args) |
getPPCTargetCPU - Get the (LLVM) name of the PowerPC cpu we are targeting. More... | |
static void | getPPCTargetFeatures (const ArgList &Args, std::vector< const char * > &Features) |
static std::string | getR600TargetGPU (const ArgList &Args) |
Get the (LLVM) name of the R600 gpu we are targeting. More... | |
static const char * | getSystemZTargetCPU (const ArgList &Args) |
static void | getSystemZTargetFeatures (const ArgList &Args, std::vector< const char * > &Features) |
static const char * | getX86TargetCPU (const ArgList &Args, const llvm::Triple &Triple) |
static std::string | getCPUName (const ArgList &Args, const llvm::Triple &T, bool FromAs=false) |
static void | AddGoldPlugin (const ToolChain &ToolChain, const ArgList &Args, ArgStringList &CmdArgs) |
static bool | getRefinementStep (const StringRef &In, const Driver &D, const Arg &A, size_t &Position) |
static void | ParseMRecip (const Driver &D, const ArgList &Args, ArgStringList &OutStrings) |
The -mrecip flag requires processing of many optional parameters. More... | |
static void | getX86TargetFeatures (const Driver &D, const llvm::Triple &Triple, const ArgList &Args, std::vector< const char * > &Features) |
static bool | DecodeAArch64Features (const Driver &D, StringRef text, std::vector< const char * > &Features) |
static bool | DecodeAArch64Mcpu (const Driver &D, StringRef Mcpu, StringRef &CPU, std::vector< const char * > &Features) |
static bool | getAArch64ArchFeaturesFromMarch (const Driver &D, StringRef March, const ArgList &Args, std::vector< const char * > &Features) |
static bool | getAArch64ArchFeaturesFromMcpu (const Driver &D, StringRef Mcpu, const ArgList &Args, std::vector< const char * > &Features) |
static bool | getAArch64MicroArchFeaturesFromMtune (const Driver &D, StringRef Mtune, const ArgList &Args, std::vector< const char * > &Features) |
static bool | getAArch64MicroArchFeaturesFromMcpu (const Driver &D, StringRef Mcpu, const ArgList &Args, std::vector< const char * > &Features) |
static void | getAArch64TargetFeatures (const Driver &D, const ArgList &Args, std::vector< const char * > &Features) |
static void | getTargetFeatures (const Driver &D, const llvm::Triple &Triple, const ArgList &Args, ArgStringList &CmdArgs, bool ForAS) |
static bool | shouldUseExceptionTablesForObjCExceptions (const ObjCRuntime &runtime, const llvm::Triple &Triple) |
static void | addExceptionArgs (const ArgList &Args, types::ID InputType, const ToolChain &TC, bool KernelOrKext, const ObjCRuntime &objcRuntime, ArgStringList &CmdArgs) |
static bool | ShouldDisableAutolink (const ArgList &Args, const ToolChain &TC) |
static bool | ShouldDisableDwarfDirectory (const ArgList &Args, const ToolChain &TC) |
static bool | ContainsCompileAction (const Action *A) |
Check whether the given input tree contains any compilation actions. More... | |
static bool | UseRelaxAll (Compilation &C, const ArgList &Args) |
Check if -relax-all should be passed to the internal assembler. This is done by default when compiling non-assembler source with -O0. More... | |
static void | CollectArgsForIntegratedAssembler (Compilation &C, const ArgList &Args, ArgStringList &CmdArgs, const Driver &D) |
static StringRef | getArchNameForCompilerRTLib (const ToolChain &TC) |
static SmallString< 128 > | getCompilerRTLibDir (const ToolChain &TC) |
static void | addClangRT (const ToolChain &TC, const ArgList &Args, ArgStringList &CmdArgs) |
static void | addProfileRT (const ToolChain &TC, const ArgList &Args, ArgStringList &CmdArgs) |
static OpenMPRuntimeKind | getOpenMPRuntime (const ToolChain &TC, const ArgList &Args) |
Compute the desired OpenMP runtime from the flag provided. More... | |
static void | addSanitizerRuntime (const ToolChain &TC, const ArgList &Args, ArgStringList &CmdArgs, StringRef Sanitizer, bool IsShared) |
static bool | addSanitizerDynamicList (const ToolChain &TC, const ArgList &Args, ArgStringList &CmdArgs, StringRef Sanitizer) |
static void | linkSanitizerRuntimeDeps (const ToolChain &TC, ArgStringList &CmdArgs) |
static void | collectSanitizerRuntimes (const ToolChain &TC, const ArgList &Args, SmallVectorImpl< StringRef > &SharedRuntimes, SmallVectorImpl< StringRef > &StaticRuntimes, SmallVectorImpl< StringRef > &HelperStaticRuntimes) |
static bool | addSanitizerRuntimes (const ToolChain &TC, const ArgList &Args, ArgStringList &CmdArgs) |
static bool | areOptimizationsEnabled (const ArgList &Args) |
static bool | shouldUseFramePointerForTarget (const ArgList &Args, const llvm::Triple &Triple) |
static bool | shouldUseFramePointer (const ArgList &Args, const llvm::Triple &Triple) |
static bool | shouldUseLeafFramePointer (const ArgList &Args, const llvm::Triple &Triple) |
static void | addDebugCompDirArg (const ArgList &Args, ArgStringList &CmdArgs) |
Add a CC1 option to specify the debug compilation directory. More... | |
static const char * | SplitDebugName (const ArgList &Args, const InputInfo &Input) |
static void | SplitDebugInfo (const ToolChain &TC, Compilation &C, const Tool &T, const JobAction &JA, const ArgList &Args, const InputInfo &Output, const char *OutFile) |
static bool | shouldEnableVectorizerAtOLevel (const ArgList &Args, bool isSlpVec) |
Vectorize at all optimization levels greater than 1 except for -Oz. For -Oz the loop vectorizer is disable, while the slp vectorizer is enabled. More... | |
static void | addDashXForInput (const ArgList &Args, const InputInfo &Input, ArgStringList &CmdArgs) |
Add -x lang to CmdArgs for Input . More... | |
static VersionTuple | getMSCompatibilityVersion (unsigned Version) |
static void | claimNoWarnArgs (const ArgList &Args) |
static void | appendUserToPath (SmallVectorImpl< char > &Result) |
static void | addPGOAndCoverageFlags (Compilation &C, const Driver &D, const InputInfo &Output, const ArgList &Args, ArgStringList &CmdArgs) |
static bool | maybeConsumeDash (const std::string &EH, size_t &I) |
static EHFlags | parseClangCLEHFlags (const Driver &D, const ArgList &Args) |
static void | constructHexagonLinkArgs (Compilation &C, const JobAction &JA, const toolchains::Hexagon_TC &ToolChain, const InputInfo &Output, const InputInfoList &Inputs, const ArgList &Args, ArgStringList &CmdArgs, const char *LinkingOutput) |
static void | AddLibgcc (const llvm::Triple &Triple, const Driver &D, ArgStringList &CmdArgs, const ArgList &Args) |
static std::string | getLinuxDynamicLinker (const ArgList &Args, const toolchains::Linux &ToolChain) |
static void | AddRunTimeLibs (const ToolChain &TC, const Driver &D, ArgStringList &CmdArgs, const ArgList &Args) |
static const char * | getLDMOption (const llvm::Triple &T, const ArgList &Args) |
static std::string | FindVisualStudioExecutable (const ToolChain &TC, const char *Exe, const char *ClangProgramPath) |
enum OpenMPRuntimeKind |
|
static |
|
static |
Definition at line 2387 of file Tools.cpp.
References clang::driver::Driver::CCCIsCXX(), clang::driver::tools::getCompilerRT(), clang::driver::ToolChain::getDriver(), and clang::driver::ToolChain::getTriple().
Referenced by AddRunTimeLibs().
|
static |
Add -x lang to CmdArgs
for Input
.
Definition at line 2722 of file Tools.cpp.
References clang::driver::InputInfo::getType(), and clang::driver::types::getTypeName().
Referenced by clang::driver::tools::Clang::ConstructJob().
|
static |
Add a CC1 option to specify the debug compilation directory.
Definition at line 2641 of file Tools.cpp.
Referenced by clang::driver::tools::Clang::ConstructJob(), and clang::driver::tools::ClangAs::ConstructJob().
|
static |
Definition at line 139 of file Tools.cpp.
Referenced by AddLinkerInputs().
|
static |
Adds exception related arguments to the driver command arguments. There's a master flag, -fexceptions and also language specific flags to enable/disable C++ and Objective-C exceptions. This makes it possible to for example disable C++ exceptions but enable Objective-C exceptions.
Definition at line 2149 of file Tools.cpp.
References clang::driver::Driver::Diag(), clang::driver::ToolChain::getDriver(), clang::driver::ToolChain::getRTTIArg(), clang::driver::ToolChain::getRTTIMode(), clang::driver::ToolChain::getTriple(), clang::driver::types::isCXX(), clang::driver::types::isObjC(), clang::driver::ToolChain::RM_DisabledExplicitly, clang::driver::ToolChain::RM_DisabledImplicitly, clang::driver::ToolChain::RM_EnabledImplicitly, and shouldUseExceptionTablesForObjCExceptions().
Referenced by clang::driver::tools::Clang::ConstructJob().
|
static |
Definition at line 1633 of file Tools.cpp.
References clang::driver::Driver::Dir, getCPUName(), clang::driver::ToolChain::getDriver(), and clang::driver::ToolChain::getTriple().
Referenced by clang::driver::tools::cloudabi::Linker::ConstructJob(), clang::driver::tools::freebsd::Linker::ConstructJob(), and clang::driver::tools::gnutools::Linker::ConstructJob().
|
static |
Definition at line 7918 of file Tools.cpp.
References clang::driver::Driver::CCCIsCXX().
Referenced by AddRunTimeLibs().
|
static |
Definition at line 193 of file Tools.cpp.
References clang::driver::ToolChain::AddCCKextLibArgs(), clang::driver::ToolChain::AddCXXStdlibLibArgs(), addDirectoryList(), clang::driver::Driver::Diag(), clang::driver::ToolChain::getDriver(), clang::driver::ToolChain::getTripleString(), clang::driver::ToolChain::HasNativeLLVMSupport(), and clang::driver::ToolChain::isCrossCompiling().
Referenced by constructHexagonLinkArgs(), clang::driver::tools::cloudabi::Linker::ConstructJob(), clang::driver::tools::darwin::Linker::ConstructJob(), clang::driver::tools::openbsd::Linker::ConstructJob(), clang::driver::tools::bitrig::Linker::ConstructJob(), clang::driver::tools::freebsd::Linker::ConstructJob(), clang::driver::tools::netbsd::Linker::ConstructJob(), clang::driver::tools::gnutools::Linker::ConstructJob(), clang::driver::tools::nacltools::Linker::ConstructJob(), clang::driver::tools::minix::Linker::ConstructJob(), clang::driver::tools::solaris::Linker::ConstructJob(), clang::driver::tools::dragonfly::Linker::ConstructJob(), clang::driver::tools::MinGW::Linker::ConstructJob(), clang::driver::tools::XCore::Linker::ConstructJob(), and clang::driver::tools::CrossWindows::Linker::ConstructJob().
|
static |
Definition at line 2838 of file Tools.cpp.
References clang::driver::Driver::Diag(), clang::driver::Compilation::getArgs(), clang::driver::InputInfo::getBaseInput(), and clang::driver::InputInfo::isFilename().
Referenced by clang::driver::tools::Clang::ConstructJob().
|
static |
Definition at line 2399 of file Tools.cpp.
References clang::driver::tools::getCompilerRT().
Referenced by clang::driver::tools::freebsd::Linker::ConstructJob(), clang::driver::tools::netbsd::Linker::ConstructJob(), clang::driver::tools::gnutools::Linker::ConstructJob(), clang::driver::tools::minix::Linker::ConstructJob(), clang::driver::tools::solaris::Linker::ConstructJob(), and clang::driver::tools::dragonfly::Linker::ConstructJob().
|
static |
Definition at line 8021 of file Tools.cpp.
References addClangRT(), AddLibgcc(), clang::driver::ToolChain::GetRuntimeLibType(), clang::driver::ToolChain::getTriple(), clang::driver::ToolChain::RLT_CompilerRT, and clang::driver::ToolChain::RLT_Libgcc.
Referenced by clang::driver::tools::gnutools::Linker::ConstructJob(), and clang::driver::tools::CrossWindows::Linker::ConstructJob().
|
static |
Definition at line 2477 of file Tools.cpp.
References clang::driver::tools::getCompilerRT().
Referenced by addSanitizerRuntimes().
|
static |
Definition at line 2463 of file Tools.cpp.
References clang::driver::tools::getCompilerRT().
Referenced by addSanitizerRuntimes().
|
static |
Definition at line 2552 of file Tools.cpp.
References addSanitizerDynamicList(), addSanitizerRuntime(), and collectSanitizerRuntimes().
Referenced by clang::driver::tools::freebsd::Linker::ConstructJob(), and clang::driver::tools::gnutools::Linker::ConstructJob().
|
static |
Definition at line 1129 of file Tools.cpp.
Referenced by getMIPSTargetFeatures(), and getPPCTargetFeatures().
|
static |
Definition at line 2759 of file Tools.cpp.
References clang::isAlphanumeric(), and P.
Referenced by clang::driver::tools::Clang::ConstructJob().
|
static |
Definition at line 2574 of file Tools.cpp.
Referenced by shouldUseFramePointerForTarget().
|
static |
Definition at line 573 of file Tools.cpp.
References clang::driver::Driver::Diag(), and clang::driver::tools::arm::getARMArch().
Referenced by getARMTargetFeatures().
|
static |
Definition at line 582 of file Tools.cpp.
References clang::driver::Driver::Diag(), clang::driver::tools::arm::getARMArch(), clang::driver::tools::arm::getARMTargetCPU(), and clang::driver::tools::arm::getLLVMArchSuffixForARM().
Referenced by getARMTargetFeatures().
|
static |
CheckCodeGenerationOptions - Perform some validation of code generation arguments that is shared with gcc.
Definition at line 84 of file Tools.cpp.
References clang::driver::Driver::Diag().
Referenced by clang::driver::tools::Clang::ConstructJob().
|
static |
CheckPreprocessingOptions - Perform some validation of preprocessing arguments that is shared with gcc.
Definition at line 71 of file Tools.cpp.
References clang::driver::Driver::CCCIsCPP(), clang::driver::Driver::Diag(), and clang::driver::Driver::IsCLMode().
|
static |
Definition at line 2752 of file Tools.cpp.
Referenced by clang::driver::tools::Clang::ConstructJob(), clang::driver::tools::ClangAs::ConstructJob(), clang::driver::tools::hexagon::Assembler::ConstructJob(), clang::driver::tools::openbsd::Assembler::ConstructJob(), clang::driver::tools::bitrig::Assembler::ConstructJob(), clang::driver::tools::freebsd::Assembler::ConstructJob(), clang::driver::tools::netbsd::Assembler::ConstructJob(), clang::driver::tools::gnutools::Assembler::ConstructJob(), clang::driver::tools::minix::Assembler::ConstructJob(), clang::driver::tools::solaris::Assembler::ConstructJob(), clang::driver::tools::dragonfly::Assembler::ConstructJob(), clang::driver::tools::MinGW::Assembler::ConstructJob(), clang::driver::tools::XCore::Assembler::ConstructJob(), and clang::driver::tools::CrossWindows::Assembler::ConstructJob().
|
static |
Definition at line 2275 of file Tools.cpp.
References clang::driver::Driver::Diag(), and UseRelaxAll().
Referenced by clang::driver::tools::Clang::ConstructJob(), and clang::driver::tools::ClangAs::ConstructJob().
|
static |
Definition at line 2502 of file Tools.cpp.
References clang::driver::ToolChain::getSanitizerArgs(), clang::driver::ToolChain::getTriple(), clang::driver::SanitizerArgs::linkCXXRuntimes(), clang::driver::SanitizerArgs::needsAsanRt(), clang::driver::SanitizerArgs::needsDfsanRt(), clang::driver::SanitizerArgs::needsLsanRt(), clang::driver::SanitizerArgs::needsMsanRt(), clang::driver::SanitizerArgs::needsSafeStackRt(), clang::driver::SanitizerArgs::needsSharedAsanRt(), clang::driver::SanitizerArgs::needsTsanRt(), and clang::driver::SanitizerArgs::needsUbsanRt().
Referenced by addSanitizerRuntimes().
|
static |
Definition at line 5711 of file Tools.cpp.
References clang::driver::ToolChain::AddCXXStdlibLibArgs(), AddLinkerInputs(), clang::driver::Driver::CCCIsCXX(), clang::driver::toolchains::Linux::ExtraOpts, clang::driver::ToolChain::getDriver(), clang::driver::InputInfo::getFilename(), clang::driver::ToolChain::getFilePaths(), clang::driver::toolchains::Hexagon_TC::GetGnuDir(), clang::driver::toolchains::Hexagon_TC::GetSmallDataThreshold(), clang::driver::toolchains::Hexagon_TC::GetTargetCPU(), clang::driver::Driver::InstalledDir, and clang::driver::toolchains::Hexagon_TC::UsesG0().
Referenced by clang::driver::tools::hexagon::Linker::ConstructJob().
Check whether the given input tree contains any compilation actions.
Definition at line 2242 of file Tools.cpp.
Referenced by UseRelaxAll().
|
static |
Definition at line 1916 of file Tools.cpp.
References clang::driver::Driver::Diag().
Referenced by DecodeAArch64Mcpu(), and getAArch64ArchFeaturesFromMarch().
|
static |
Definition at line 1944 of file Tools.cpp.
References DecodeAArch64Features().
Referenced by getAArch64ArchFeaturesFromMcpu(), and getAArch64MicroArchFeaturesFromMcpu().
|
static |
Definition at line 96 of file Tools.cpp.
Referenced by clang::driver::tools::Clang::ConstructJob(), and clang::driver::tools::ClangAs::ConstructJob().
|
static |
Definition at line 8730 of file Tools.cpp.
Referenced by clang::driver::tools::visualstudio::Linker::ConstructJob(), and clang::driver::tools::visualstudio::Compiler::GetCommand().
|
static |
Definition at line 254 of file Tools.cpp.
References clang::driver::options::DriverOption, and clang::driver::options::LinkerInput.
Referenced by clang::driver::tools::gcc::Common::ConstructJob().
|
static |
Definition at line 1966 of file Tools.cpp.
References DecodeAArch64Features().
Referenced by getAArch64TargetFeatures().
|
static |
Definition at line 1987 of file Tools.cpp.
References DecodeAArch64Mcpu().
Referenced by getAArch64TargetFeatures().
|
static |
Definition at line 2013 of file Tools.cpp.
References DecodeAArch64Mcpu(), and getAArch64MicroArchFeaturesFromMtune().
Referenced by getAArch64TargetFeatures().
|
static |
Definition at line 1999 of file Tools.cpp.
Referenced by getAArch64MicroArchFeaturesFromMcpu(), and getAArch64TargetFeatures().
|
static |
getAArch64TargetCPU - Get the (LLVM) name of the AArch64 cpu we are targeting.
Definition at line 934 of file Tools.cpp.
Referenced by getAArch64TargetFeatures(), and getCPUName().
|
static |
Definition at line 2025 of file Tools.cpp.
References clang::driver::Driver::Diag(), getAArch64ArchFeaturesFromMarch(), getAArch64ArchFeaturesFromMcpu(), getAArch64MicroArchFeaturesFromMcpu(), getAArch64MicroArchFeaturesFromMtune(), and getAArch64TargetCPU().
Referenced by getTargetFeatures().
|
static |
Definition at line 2343 of file Tools.cpp.
References clang::driver::ToolChain::getArch(), clang::driver::ToolChain::getArchName(), and clang::driver::ToolChain::getTriple().
Referenced by clang::driver::tools::getCompilerRT().
|
static |
Definition at line 521 of file Tools.cpp.
Referenced by clang::driver::tools::netbsd::Assembler::ConstructJob(), and getCPUName().
|
static |
Definition at line 562 of file Tools.cpp.
References clang::driver::Driver::Diag().
Referenced by getARMTargetFeatures().
|
static |
Definition at line 542 of file Tools.cpp.
References clang::driver::Driver::Diag().
Referenced by getARMTargetFeatures().
|
static |
|
static |
Definition at line 681 of file Tools.cpp.
References checkARMArchName(), checkARMCPUName(), clang::driver::Driver::Diag(), clang::driver::tools::arm::getARMFloatABI(), getARMFPUFeatures(), and getARMHWDivFeatures().
Referenced by getTargetFeatures().
|
static |
Definition at line 2352 of file Tools.cpp.
References clang::driver::ToolChain::getDriver(), clang::driver::ToolChain::getOS(), clang::driver::ToolChain::getTriple(), and clang::driver::Driver::ResourceDir.
Referenced by clang::driver::tools::getCompilerRT().
|
static |
Definition at line 1558 of file Tools.cpp.
References getAArch64TargetCPU(), getARMArchCPUFromArgs(), clang::driver::tools::arm::getARMTargetCPU(), clang::driver::tools::mips::getMipsCPUAndABI(), getPPCTargetCPU(), getR600TargetGPU(), getSystemZTargetCPU(), clang::driver::toolchains::Hexagon_TC::GetTargetCPU(), and getX86TargetCPU().
Referenced by AddGoldPlugin(), clang::driver::tools::Clang::ConstructJob(), and clang::driver::tools::ClangAs::ConstructJob().
|
static |
Definition at line 1091 of file Tools.cpp.
Referenced by clang::driver::tools::openbsd::Assembler::ConstructJob(), clang::driver::tools::freebsd::Assembler::ConstructJob(), clang::driver::tools::netbsd::Assembler::ConstructJob(), clang::driver::tools::gnutools::Assembler::ConstructJob(), and getMIPSTargetFeatures().
|
static |
Definition at line 8043 of file Tools.cpp.
References clang::driver::tools::mips::hasMipsAbiArg().
Referenced by clang::driver::tools::gnutools::Linker::ConstructJob().
|
static |
Definition at line 7952 of file Tools.cpp.
References clang::driver::ToolChain::getArch(), clang::driver::tools::arm::getARMFloatABI(), clang::driver::ToolChain::getDriver(), clang::driver::tools::mips::getMipsCPUAndABI(), clang::driver::ToolChain::getTriple(), clang::driver::tools::ppc::hasPPCAbiArg(), clang::driver::tools::mips::isNaN2008(), and clang::driver::tools::mips::isUCLibc().
Referenced by clang::driver::tools::gnutools::Linker::ConstructJob().
|
static |
Definition at line 1100 of file Tools.cpp.
References clang::driver::Driver::Diag().
Referenced by clang::driver::tools::gnutools::Assembler::ConstructJob(), and getMIPSTargetFeatures().
|
static |
Definition at line 1141 of file Tools.cpp.
References AddTargetFeature(), clang::driver::Driver::Diag(), getGnuCompatibleMipsABIName(), clang::driver::tools::mips::getMipsCPUAndABI(), getMipsFloatABI(), clang::driver::tools::mips::getSupportedNanEncoding(), clang::driver::tools::mips::Nan2008, clang::driver::tools::mips::NanLegacy, and clang::driver::tools::mips::shouldUseFPXX().
Referenced by getTargetFeatures().
|
static |
Definition at line 2736 of file Tools.cpp.
Referenced by clang::driver::tools::visualstudio::getMSVCVersion().
|
static |
Compute the desired OpenMP runtime from the flag provided.
Definition at line 2437 of file Tools.cpp.
References clang::driver::Driver::Diag(), and clang::driver::ToolChain::getDriver().
Referenced by clang::driver::tools::Clang::ConstructJob(), clang::driver::tools::darwin::Linker::ConstructJob(), and clang::driver::tools::gnutools::Linker::ConstructJob().
|
static |
getPPCTargetCPU - Get the (LLVM) name of the PowerPC cpu we are targeting.
Definition at line 1271 of file Tools.cpp.
Referenced by getCPUName().
|
static |
Definition at line 1334 of file Tools.cpp.
References AddTargetFeature().
Referenced by getTargetFeatures().
|
static |
Get the (LLVM) name of the R600 gpu we are targeting.
Definition at line 1411 of file Tools.cpp.
Referenced by getCPUName().
|
static |
This is a helper function for validating the optional refinement step parameter in reciprocal argument strings. Return false if there is an error parsing the refinement step. Otherwise, return true and set the Position of the refinement step in the input string.
Definition at line 1656 of file Tools.cpp.
References clang::driver::Driver::Diag().
Referenced by ParseMRecip().
|
static |
Definition at line 1450 of file Tools.cpp.
Referenced by clang::driver::tools::gnutools::Assembler::ConstructJob(), and getCPUName().
|
static |
Definition at line 1456 of file Tools.cpp.
Referenced by getTargetFeatures().
|
static |
Definition at line 2067 of file Tools.cpp.
References getAArch64TargetFeatures(), getARMTargetFeatures(), getMIPSTargetFeatures(), getPPCTargetFeatures(), getSystemZTargetFeatures(), getX86TargetFeatures(), and clang::LangAS::Last.
Referenced by clang::driver::tools::Clang::ConstructJob(), and clang::driver::tools::ClangAs::ConstructJob().
|
static |
Definition at line 1474 of file Tools.cpp.
Referenced by getCPUName().
|
static |
Definition at line 1783 of file Tools.cpp.
References clang::driver::Driver::Diag().
Referenced by getTargetFeatures().
|
static |
|
static |
Definition at line 495 of file Tools.cpp.
Referenced by clang::driver::tools::Clang::ConstructJob().
|
static |
Determine whether Objective-C automated reference counting is enabled.
Definition at line 241 of file Tools.cpp.
Referenced by clang::driver::tools::Clang::ConstructJob(), and isObjCRuntimeLinked().
|
static |
Determine whether we are linking the ObjC runtime.
Definition at line 246 of file Tools.cpp.
References isObjCAutoRefCount().
Referenced by clang::driver::tools::darwin::Linker::ConstructJob().
|
static |
Definition at line 466 of file Tools.cpp.
Referenced by clang::driver::tools::Clang::ConstructJob().
|
static |
Definition at line 2488 of file Tools.cpp.
References clang::driver::ToolChain::getTriple().
Referenced by clang::driver::tools::freebsd::Linker::ConstructJob(), and clang::driver::tools::gnutools::Linker::ConstructJob().
Definition at line 5147 of file Tools.cpp.
Referenced by parseClangCLEHFlags().
/EH controls whether to run destructor cleanups when exceptions are thrown. There are three modifiers:
Definition at line 5168 of file Tools.cpp.
References EHFlags::Asynch, clang::driver::Driver::Diag(), maybeConsumeDash(), EHFlags::NoExceptC, and EHFlags::Synch.
|
static |
The -mrecip flag requires processing of many optional parameters.
Definition at line 1684 of file Tools.cpp.
References clang::driver::Driver::Diag(), and getRefinementStep().
Referenced by clang::driver::tools::Clang::ConstructJob().
|
static |
Definition at line 2222 of file Tools.cpp.
References clang::driver::ToolChain::getTriple(), and clang::driver::ToolChain::useIntegratedAs().
Referenced by clang::driver::tools::Clang::ConstructJob().
Definition at line 2233 of file Tools.cpp.
References clang::driver::ToolChain::useIntegratedAs().
Referenced by clang::driver::tools::Clang::ConstructJob().
Vectorize at all optimization levels greater than 1 except for -Oz. For -Oz the loop vectorizer is disable, while the slp vectorizer is enabled.
Definition at line 2691 of file Tools.cpp.
References S.
Referenced by clang::driver::tools::Clang::ConstructJob().
|
static |
Definition at line 2129 of file Tools.cpp.
References clang::ObjCRuntime::isNonFragile().
Referenced by addExceptionArgs().
|
static |
Definition at line 2619 of file Tools.cpp.
References shouldUseFramePointerForTarget().
Referenced by clang::driver::tools::Clang::ConstructJob().
|
static |
Definition at line 2582 of file Tools.cpp.
References areOptimizationsEnabled().
Referenced by shouldUseFramePointer(), and shouldUseLeafFramePointer().
|
static |
Definition at line 2628 of file Tools.cpp.
References shouldUseFramePointerForTarget().
Referenced by clang::driver::tools::Clang::ConstructJob().
|
static |
Definition at line 2666 of file Tools.cpp.
References clang::driver::Compilation::addCommand(), clang::driver::InputInfo::getFilename(), and clang::driver::ToolChain::GetProgramPath().
Referenced by clang::driver::tools::Clang::ConstructJob(), clang::driver::tools::ClangAs::ConstructJob(), clang::driver::tools::gnutools::Assembler::ConstructJob(), and clang::driver::tools::MinGW::Assembler::ConstructJob().
|
static |
Definition at line 2649 of file Tools.cpp.
References clang::driver::InputInfo::getBaseInput().
Referenced by clang::driver::tools::Clang::ConstructJob(), clang::driver::tools::ClangAs::ConstructJob(), clang::driver::tools::gnutools::Assembler::ConstructJob(), and clang::driver::tools::MinGW::Assembler::ConstructJob().
|
static |
Check if -relax-all should be passed to the internal assembler. This is done by default when compiling non-assembler source with -O0.
Definition at line 2255 of file Tools.cpp.
References ContainsCompileAction(), and clang::driver::Compilation::getActions().
Referenced by CollectArgsForIntegratedAssembler().