|
clang 24.0.0git
|
#include "clang/Driver/CommonArgs.h"#include "Arch/AArch64.h"#include "Arch/ARM.h"#include "Arch/CSKY.h"#include "Arch/LoongArch.h"#include "Arch/M68k.h"#include "Arch/Mips.h"#include "Arch/PPC.h"#include "Arch/RISCV.h"#include "Arch/Sparc.h"#include "Arch/SystemZ.h"#include "Arch/VE.h"#include "Arch/X86.h"#include "HIPAMD.h"#include "Hexagon.h"#include "MSP430.h"#include "Solaris.h"#include "ToolChains/Cuda.h"#include "clang/Basic/CodeGenOptions.h"#include "clang/Config/config.h"#include "clang/Driver/Action.h"#include "clang/Driver/Compilation.h"#include "clang/Driver/Driver.h"#include "clang/Driver/InputInfo.h"#include "clang/Driver/Job.h"#include "clang/Driver/SanitizerArgs.h"#include "clang/Driver/ToolChain.h"#include "clang/Driver/Util.h"#include "clang/Driver/XRayArgs.h"#include "clang/Frontend/CompilerInvocation.h"#include "clang/Options/Options.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/Config/llvm-config.h"#include "llvm/Option/Arg.h"#include "llvm/Option/ArgList.h"#include "llvm/Option/Option.h"#include "llvm/Support/CodeGen.h"#include "llvm/Support/Compression.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/FileSystem.h"#include "llvm/Support/Path.h"#include "llvm/Support/Process.h"#include "llvm/Support/Program.h"#include "llvm/Support/Threading.h"#include "llvm/Support/VirtualFileSystem.h"#include "llvm/Support/YAMLParser.h"#include "llvm/TargetParser/AMDGPUTargetParser.h"#include "llvm/TargetParser/Host.h"#include "llvm/TargetParser/PPCTargetParser.h"#include <optional>Go to the source code of this file.
Enumerations | |
| enum class | LibGccType { UnspecifiedLibGcc , StaticLibGcc , SharedLibGcc } |
Functions | |
| static bool | useFramePointerForTargetByDefault (const llvm::opt::ArgList &Args, const llvm::Triple &Triple) |
| static bool | useLeafFramePointerForTargetByDefault (const llvm::Triple &Triple) |
| static bool | mustUseNonLeafFramePointerForTarget (const llvm::Triple &Triple) |
| static bool | mustMaintainValidFrameChain (const llvm::opt::ArgList &Args, const llvm::Triple &Triple) |
| static bool | framePointerImpliesLeafFramePointer (const llvm::opt::ArgList &Args, const llvm::Triple &Triple) |
| clang::CodeGenOptions::FramePointerKind | getFramePointerKind (const llvm::opt::ArgList &Args, const llvm::Triple &Triple) |
| static void | renderRpassOptions (const ArgList &Args, ArgStringList &CmdArgs, const StringRef PluginOptPrefix) |
| static void | renderRemarksOptions (const ArgList &Args, ArgStringList &CmdArgs, const llvm::Triple &Triple, const InputInfo &Input, const InputInfo &Output, const StringRef PluginOptPrefix) |
| static void | renderRemarksHotnessOptions (const ArgList &Args, ArgStringList &CmdArgs, const StringRef PluginOptPrefix) |
| static bool | shouldIgnoreUnsupportedTargetFeature (const Arg &TargetFeatureArg, const llvm::Triple &T) |
| static StringRef | getAMDGPUTargetGPU (const llvm::Triple &T, const ArgList &Args) |
| Get the (LLVM) name of the AMDGPU gpu we are targeting. | |
| static std::string | getLanaiTargetCPU (const ArgList &Args) |
| static StringRef | getWebAssemblyTargetCPU (const ArgList &Args) |
| Get the (LLVM) name of the WebAssembly cpu we are targeting. | |
| static void | getWebAssemblyTargetFeatures (const Driver &D, const llvm::Triple &Triple, const ArgList &Args, std::vector< StringRef > &Features) |
| static void | addSanitizerRuntime (const ToolChain &TC, const ArgList &Args, ArgStringList &CmdArgs, StringRef Sanitizer, bool IsShared, bool IsWhole) |
| static bool | addSanitizerDynamicList (const ToolChain &TC, const ArgList &Args, ArgStringList &CmdArgs, StringRef Sanitizer) |
| static bool | hostNeedsUbsanOffloadRt (Compilation &C, const ToolChain &HostTC) |
| static void | collectSanitizerRuntimes (Compilation &C, const ToolChain &TC, const ArgList &Args, SmallVectorImpl< StringRef > &SharedRuntimes, SmallVectorImpl< StringRef > &StaticRuntimes, SmallVectorImpl< StringRef > &NonWholeStaticRuntimes, SmallVectorImpl< StringRef > &HelperStaticRuntimes, SmallVectorImpl< StringRef > &RequiredSymbols) |
| static unsigned | ParseDebugDefaultVersion (const ToolChain &TC, const ArgList &Args) |
| static LibGccType | getLibGccType (const ToolChain &TC, const Driver &D, const ArgList &Args) |
| static void | AddUnwindLibrary (const ToolChain &TC, const Driver &D, ArgStringList &CmdArgs, const ArgList &Args) |
| static void | AddLibgcc (const ToolChain &TC, const Driver &D, ArgStringList &CmdArgs, const ArgList &Args) |
| static llvm::opt::Arg * | getAMDGPUCodeObjectArgument (const Driver &D, const llvm::opt::ArgList &Args) |
| static void | emitComplexRangeDiag (const Driver &D, StringRef LastOpt, LangOptions::ComplexRangeKind Range, StringRef NewOpt, LangOptions::ComplexRangeKind NewRange) |
|
strong |
| Enumerator | |
|---|---|
| UnspecifiedLibGcc | |
| StaticLibGcc | |
| SharedLibGcc | |
Definition at line 2494 of file CommonArgs.cpp.
|
static |
Definition at line 2579 of file CommonArgs.cpp.
References AddUnwindLibrary(), clang::driver::Driver::CCCIsCXX(), clang::driver::ToolChain::getArch(), clang::driver::ToolChain::getCompilerRTArgString(), getLibGccType(), clang::driver::Driver::IsFlangMode(), SharedLibGcc, StaticLibGcc, and UnspecifiedLibGcc.
|
static |
Definition at line 1589 of file CommonArgs.cpp.
References clang::driver::ToolChain::getCompilerRT(), clang::driver::ToolChain::getTriple(), and clang::driver::tools::solaris::isLinkerGnuLd().
|
static |
Definition at line 1575 of file CommonArgs.cpp.
References clang::driver::ToolChain::FT_Shared, clang::driver::ToolChain::FT_Static, and clang::driver::ToolChain::getCompilerRTArgString().
|
static |
Definition at line 2521 of file CommonArgs.cpp.
References clang::driver::tools::addAsNeededOption(), clang::driver::Driver::CCCIsCXX(), getLibGccType(), clang::driver::ToolChain::getTriple(), clang::driver::ToolChain::GetUnwindLibType(), SharedLibGcc, StaticLibGcc, UnspecifiedLibGcc, clang::driver::ToolChain::UNW_CompilerRT, clang::driver::ToolChain::UNW_Libgcc, and clang::driver::ToolChain::UNW_None.
Referenced by AddLibgcc().
|
static |
Definition at line 1689 of file CommonArgs.cpp.
References clang::C, clang::driver::ToolChain::getSanitizerArgs(), clang::driver::ToolChain::getTriple(), hostNeedsUbsanOffloadRt(), clang::driver::SanitizerArgs::linkCXXRuntimes(), clang::driver::SanitizerArgs::linkRuntimes(), clang::driver::SanitizerArgs::needsAsanRt(), clang::driver::SanitizerArgs::needsCfiCrossDsoDiagRt(), clang::driver::SanitizerArgs::needsCfiCrossDsoRt(), clang::driver::SanitizerArgs::needsDfsanRt(), clang::driver::SanitizerArgs::needsHwasanAliasesRt(), clang::driver::SanitizerArgs::needsHwasanRt(), clang::driver::SanitizerArgs::needsLsanRt(), clang::driver::SanitizerArgs::needsMemProfRt(), clang::driver::SanitizerArgs::needsMsanRt(), clang::driver::SanitizerArgs::needsNsanRt(), clang::driver::SanitizerArgs::needsRtsanRt(), clang::driver::SanitizerArgs::needsSafeStackRt(), clang::driver::SanitizerArgs::needsScudoRt(), clang::driver::SanitizerArgs::needsSharedRt(), clang::driver::SanitizerArgs::needsStatsRt(), clang::driver::SanitizerArgs::needsTsanRt(), clang::driver::SanitizerArgs::needsTysanRt(), clang::driver::SanitizerArgs::needsUbsanCXXRt(), clang::driver::SanitizerArgs::needsUbsanLoopDetectRt(), NeedsUbsanRt, clang::driver::SanitizerArgs::needsUbsanRt(), and clang::driver::SanitizerArgs::requiresMinimalRuntime().
|
static |
Definition at line 3382 of file CommonArgs.cpp.
References clang::driver::tools::complexRangeKindToStr(), and clang::driver::Driver::Diag().
Referenced by clang::driver::tools::setComplexRange().
|
static |
|
static |
Definition at line 2725 of file CommonArgs.cpp.
Referenced by clang::driver::tools::checkAMDGPUCodeObjectVersion(), clang::driver::tools::getAMDGPUCodeObjectVersion(), and clang::driver::tools::haveAMDGPUCodeObjectVersionArgument().
|
static |
Get the (LLVM) name of the AMDGPU gpu we are targeting.
Definition at line 728 of file CommonArgs.cpp.
References clang::getProcessorFromTargetID(), and clang::T.
| clang::CodeGenOptions::FramePointerKind getFramePointerKind | ( | const llvm::opt::ArgList & | Args, |
| const llvm::Triple & | Triple ) |
Definition at line 239 of file CommonArgs.cpp.
References clang::CodeGenOptions::All, framePointerImpliesLeafFramePointer(), mustMaintainValidFrameChain(), mustUseNonLeafFramePointerForTarget(), clang::CodeGenOptions::None, clang::CodeGenOptions::NonLeaf, clang::CodeGenOptions::NonLeafNoReserve, clang::CodeGenOptions::Reserved, useFramePointerForTargetByDefault(), and useLeafFramePointerForTargetByDefault().
Referenced by clang::driver::tools::Clang::ConstructJob(), and clang::driver::tools::Flang::ConstructJob().
|
static |
Definition at line 747 of file CommonArgs.cpp.
|
static |
Definition at line 2496 of file CommonArgs.cpp.
References clang::driver::ToolChain::getTriple(), SharedLibGcc, StaticLibGcc, and UnspecifiedLibGcc.
Referenced by AddLibgcc(), and AddUnwindLibrary().
|
static |
Get the (LLVM) name of the WebAssembly cpu we are targeting.
Definition at line 755 of file CommonArgs.cpp.
|
static |
Definition at line 885 of file CommonArgs.cpp.
References clang::driver::tools::handleTargetFeaturesGroup().
|
static |
Definition at line 1662 of file CommonArgs.cpp.
References clang::C, clang::driver::ToolChain::getSanitizerArgs(), clang::driver::ToolChain::getTriple(), clang::driver::SanitizerArgs::needsUbsanRt(), clang::driver::Action::OFK_Cuda, clang::driver::Action::OFK_HIP, clang::driver::Action::OFK_OpenMP, clang::driver::Action::OFK_SYCL, and clang::driver::SanitizerArgs::requiresMinimalRuntime().
Referenced by collectSanitizerRuntimes().
|
static |
|
static |
Definition at line 181 of file CommonArgs.cpp.
Referenced by getFramePointerKind().
Definition at line 2388 of file CommonArgs.cpp.
References clang::driver::Driver::Diag(), and clang::driver::ToolChain::getDriver().
Referenced by clang::driver::tools::getDwarfVersion().
|
static |
Definition at line 361 of file CommonArgs.cpp.
|
static |
Definition at line 325 of file CommonArgs.cpp.
References clang::driver::InputInfo::getFilename(), and clang::driver::InputInfo::isFilename().
|
static |
Definition at line 310 of file CommonArgs.cpp.
|
static |
Definition at line 376 of file CommonArgs.cpp.
References clang::T.
|
static |
Definition at line 85 of file CommonArgs.cpp.
References clang::driver::tools::areOptimizationsEnabled(), and clang::driver::tools::arm::isARMEABIBareMetal().
Referenced by getFramePointerKind().
|
static |
Definition at line 170 of file CommonArgs.cpp.
Referenced by getFramePointerKind().