clang 22.0.0git
clang::driver::tools Namespace Reference

Namespaces

namespace  aarch64
namespace  aix
 Directly call system default assembler and linker.
namespace  AMDGCN
namespace  amdgpu
namespace  arm
namespace  AVR
namespace  baremetal
namespace  CrossWindows
namespace  CSKY
namespace  csky
namespace  darwin
namespace  dragonfly
 Directly call GNU Binutils assembler and linker.
namespace  freebsd
 Directly call GNU Binutils assembler and linker.
namespace  fuchsia
namespace  gcc
 gcc - Generic GCC tool implementations.
namespace  gnutools
 Directly call GNU Binutils' assembler and linker.
namespace  haiku
 Directly call GNU Binutils assembler and linker.
namespace  hexagon
namespace  HIP
namespace  HIPSPV
namespace  hlsl
namespace  ifstool
namespace  loongarch
namespace  m68k
namespace  MinGW
 Directly call GNU Binutils assembler and linker.
namespace  mips
namespace  msp430
namespace  netbsd
 Directly call GNU Binutils assembler and linker.
namespace  NVPTX
namespace  openbsd
 Directly call GNU Binutils assembler and linker.
namespace  ppc
namespace  PS4cpu
namespace  PS5cpu
namespace  PScpu
namespace  riscv
namespace  solaris
 Directly call Solaris assembler and linker.
namespace  sparc
namespace  SPIRV
namespace  systemz
namespace  uefi
namespace  ve
namespace  visualstudio
 Visual studio tools.
namespace  wasm
namespace  x86
namespace  XCore
namespace  zos
 Directly call system default assembler and linker.

Classes

class  Clang
 Clang compiler tool. More...
class  ClangAs
 Clang integrated assembler tool. More...
class  Flang
 Flang compiler tool. More...
class  LinkerWrapper
 Linker wrapper tool. More...
class  OffloadBundler
 Offload bundler tool. More...
class  OffloadPackager
 Offload binary tool. More...

Enumerations

enum class  DwarfFissionKind { None , Split , Single }

Functions

void addPathIfExists (const Driver &D, const Twine &Path, ToolChain::path_list &Paths)
void AddLinkerInputs (const ToolChain &TC, const InputInfoList &Inputs, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs, const JobAction &JA)
const char * getLDMOption (const llvm::Triple &T, const llvm::opt::ArgList &Args)
void addLinkerCompressDebugSectionsOption (const ToolChain &TC, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs)
void claimNoWarnArgs (const llvm::opt::ArgList &Args)
bool addSanitizerRuntimes (const ToolChain &TC, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs)
void linkSanitizerRuntimeDeps (const ToolChain &TC, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs)
bool addXRayRuntime (const ToolChain &TC, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs)
void linkXRayRuntimeDeps (const ToolChain &TC, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs)
void AddRunTimeLibs (const ToolChain &TC, const Driver &D, llvm::opt::ArgStringList &CmdArgs, const llvm::opt::ArgList &Args)
void AddStaticDeviceLibsLinking (Compilation &C, const Tool &T, const JobAction &JA, const InputInfoList &Inputs, const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CmdArgs, StringRef Arch, StringRef Target, bool isBitCodeSDL)
void AddStaticDeviceLibs (Compilation *C, const Tool *T, const JobAction *JA, const InputInfoList *Inputs, const Driver &D, const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CmdArgs, StringRef Arch, StringRef Target, bool isBitCodeSDL)
const char * SplitDebugName (const JobAction &JA, const llvm::opt::ArgList &Args, const InputInfo &Input, const InputInfo &Output)
void SplitDebugInfo (const ToolChain &TC, Compilation &C, const Tool &T, const JobAction &JA, const llvm::opt::ArgList &Args, const InputInfo &Output, const char *OutFile)
void addLTOOptions (const ToolChain &ToolChain, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs, const InputInfo &Output, const InputInfoList &Inputs, bool IsThinLTO)
const char * RelocationModelName (llvm::Reloc::Model Model)
std::tuple< llvm::Reloc::Model, unsigned, boolParsePICArgs (const ToolChain &ToolChain, const llvm::opt::ArgList &Args)
bool getStaticPIE (const llvm::opt::ArgList &Args, const ToolChain &TC)
unsigned ParseFunctionAlignment (const ToolChain &TC, const llvm::opt::ArgList &Args)
void addDebugInfoKind (llvm::opt::ArgStringList &CmdArgs, llvm::codegenoptions::DebugInfoKind DebugInfoKind)
llvm::codegenoptions::DebugInfoKind debugLevelToInfoKind (const llvm::opt::Arg &A)
unsigned DwarfVersionNum (StringRef ArgValue)
const llvm::opt::Arg * getDwarfNArg (const llvm::opt::ArgList &Args)
unsigned getDwarfVersion (const ToolChain &TC, const llvm::opt::ArgList &Args)
void AddAssemblerKPIC (const ToolChain &ToolChain, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs)
void addArchSpecificRPath (const ToolChain &TC, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs)
void addOpenMPRuntimeLibraryPath (const ToolChain &TC, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs)
bool addOpenMPRuntime (const Compilation &C, llvm::opt::ArgStringList &CmdArgs, const ToolChain &TC, const llvm::opt::ArgList &Args, bool ForceStaticHostRuntime=false, bool IsOffloadingHost=false, bool GompNeedsRT=false)
 Returns true, if an OpenMP runtime has been added.
void addOpenMPHostOffloadingArgs (const Compilation &C, const JobAction &JA, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs)
 Adds offloading options for OpenMP host compilation to CmdArgs.
void addHIPRuntimeLibArgs (const ToolChain &TC, Compilation &C, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs)
void addAsNeededOption (const ToolChain &TC, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs, bool as_needed)
llvm::opt::Arg * getLastCSProfileGenerateArg (const llvm::opt::ArgList &Args)
llvm::opt::Arg * getLastProfileUseArg (const llvm::opt::ArgList &Args)
llvm::opt::Arg * getLastProfileSampleUseArg (const llvm::opt::ArgList &Args)
bool isObjCAutoRefCount (const llvm::opt::ArgList &Args)
llvm::StringRef getLTOParallelism (const llvm::opt::ArgList &Args, const Driver &D)
bool areOptimizationsEnabled (const llvm::opt::ArgList &Args)
bool isUseSeparateSections (const llvm::Triple &Triple)
bool isTLSDESCEnabled (const ToolChain &TC, const llvm::opt::ArgList &Args)
void addDirectoryList (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs, const char *ArgName, const char *EnvVar)
 EnvVar is split by system delimiter for environment variables.
void AddTargetFeature (const llvm::opt::ArgList &Args, std::vector< StringRef > &Features, llvm::opt::OptSpecifier OnOpt, llvm::opt::OptSpecifier OffOpt, StringRef FeatureName)
std::string getCPUName (const Driver &D, const llvm::opt::ArgList &Args, const llvm::Triple &T, bool FromAs=false)
void getTargetFeatures (const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs, bool ForAS, bool IsAux=false)
void handleTargetFeaturesGroup (const Driver &D, const llvm::Triple &Triple, const llvm::opt::ArgList &Args, std::vector< StringRef > &Features, llvm::opt::OptSpecifier Group)
 Iterate Args and convert -mxxx to +xxx and -mno-xxx to -xxx and append it to Features.
SmallVector< StringRef > unifyTargetFeatures (ArrayRef< StringRef > Features)
 If there are multiple +xxx or -xxx features, keep the last one.
SmallString< 128 > getStatsFileName (const llvm::opt::ArgList &Args, const InputInfo &Output, const InputInfo &Input, const Driver &D)
 Handles the -save-stats option and returns the filename to save statistics to.
void addMultilibFlag (bool Enabled, const StringRef Flag, Multilib::flags_list &Flags)
 Flag must be a flag accepted by the driver.
void addX86AlignBranchArgs (const Driver &D, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs, bool IsLTO, const StringRef PluginOptPrefix="")
void checkAMDGPUCodeObjectVersion (const Driver &D, const llvm::opt::ArgList &Args)
unsigned getAMDGPUCodeObjectVersion (const Driver &D, const llvm::opt::ArgList &Args)
bool haveAMDGPUCodeObjectVersionArgument (const Driver &D, const llvm::opt::ArgList &Args)
void addMachineOutlinerArgs (const Driver &D, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs, const llvm::Triple &Triple, bool IsLTO, const StringRef PluginOptPrefix="")
void addOpenMPDeviceRTL (const Driver &D, const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args, StringRef BitcodeSuffix, const llvm::Triple &Triple, const ToolChain &HostTC)
void addOpenCLBuiltinsLib (const Driver &D, const llvm::opt::ArgList &DriverArgs, llvm::opt::ArgStringList &CC1Args)
void addOutlineAtomicsArgs (const Driver &D, const ToolChain &TC, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs, const llvm::Triple &Triple)
void addOffloadCompressArgs (const llvm::opt::ArgList &TCArgs, llvm::opt::ArgStringList &CmdArgs)
void addMCModel (const Driver &D, const llvm::opt::ArgList &Args, const llvm::Triple &Triple, const llvm::Reloc::Model &RelocationModel, llvm::opt::ArgStringList &CmdArgs)
void handleColorDiagnosticsArgs (const Driver &D, const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs)
 Handle the -f{no}-color-diagnostics and -f{no}-diagnostics-colors options.
void escapeSpacesAndBackslashes (const char *Arg, llvm::SmallVectorImpl< char > &Res)
 Add backslashes to escape spaces and other backslashes.
const char * renderEscapedCommandLine (const ToolChain &TC, const llvm::opt::ArgList &Args)
 Join the args in the given ArgList, escape spaces and backslashes and return the joined string.
bool shouldRecordCommandLine (const ToolChain &TC, const llvm::opt::ArgList &Args, bool &FRecordCommandLine, bool &GRecordCommandLine)
 Check if the command line should be recorded in the object file.
void renderCommonIntegerOverflowOptions (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs)
bool shouldEnableVectorizerAtOLevel (const llvm::opt::ArgList &Args, bool isSlpVec)
void handleInterchangeLoopsArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs)
 Enable -floop-interchange based on the optimization level selected.
void handleVectorizeLoopsArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs)
 Enable -fvectorize based on the optimization level selected.
void handleVectorizeSLPArgs (const llvm::opt::ArgList &Args, llvm::opt::ArgStringList &CmdArgs)
 Enable -fslp-vectorize based on the optimization level selected.
StringRef parseMPreferVectorWidthOption (clang::DiagnosticsEngine &Diags, const llvm::opt::ArgList &Args)
StringRef parseMRecipOption (clang::DiagnosticsEngine &Diags, const llvm::opt::ArgList &Args)
std::string complexRangeKindToStr (LangOptions::ComplexRangeKind Range)
std::string renderComplexRangeOption (LangOptions::ComplexRangeKind Range)
DwarfFissionKind getDebugFissionKind (const Driver &D, const llvm::opt::ArgList &Args, llvm::opt::Arg *&Arg)
llvm::SmallString< 256 > getCXX20NamedModuleOutputPath (const llvm::opt::ArgList &Args, const char *BaseInput)

Enumeration Type Documentation

◆ DwarfFissionKind

Enumerator
None 
Split 
Single 

Definition at line 190 of file Clang.h.

Function Documentation

◆ addArchSpecificRPath()

void clang::driver::tools::addArchSpecificRPath ( const ToolChain & TC,
const llvm::opt::ArgList & Args,
llvm::opt::ArgStringList & CmdArgs )

◆ addAsNeededOption()

void clang::driver::tools::addAsNeededOption ( const ToolChain & TC,
const llvm::opt::ArgList & Args,
llvm::opt::ArgStringList & CmdArgs,
bool as_needed )

◆ AddAssemblerKPIC()

void clang::driver::tools::AddAssemblerKPIC ( const ToolChain & ToolChain,
const llvm::opt::ArgList & Args,
llvm::opt::ArgStringList & CmdArgs )

◆ addDebugInfoKind()

void clang::driver::tools::addDebugInfoKind ( llvm::opt::ArgStringList & CmdArgs,
llvm::codegenoptions::DebugInfoKind DebugInfoKind )

Referenced by RenderDebugEnablingArgs().

◆ addDirectoryList()

void clang::driver::tools::addDirectoryList ( const llvm::opt::ArgList & Args,
llvm::opt::ArgStringList & CmdArgs,
const char * ArgName,
const char * EnvVar )

EnvVar is split by system delimiter for environment variables.

If ArgName is "-I", "-L", or an empty string, each entry from EnvVar is prefixed by ArgName then added to Args. Otherwise, for each entry of EnvVar, ArgName is added to Args first, then the entry itself is added.

Referenced by clang::driver::tools::NVPTX::Linker::ConstructJob(), clang::driver::toolchains::HIPAMDToolChain::getDeviceLibs(), and clang::driver::toolchains::HIPSPVToolChain::getDeviceLibs().

◆ addHIPRuntimeLibArgs()

void clang::driver::tools::addHIPRuntimeLibArgs ( const ToolChain & TC,
Compilation & C,
const llvm::opt::ArgList & Args,
llvm::opt::ArgStringList & CmdArgs )

◆ addLinkerCompressDebugSectionsOption()

◆ AddLinkerInputs()

void clang::driver::tools::AddLinkerInputs ( const ToolChain & TC,
const InputInfoList & Inputs,
const llvm::opt::ArgList & Args,
llvm::opt::ArgStringList & CmdArgs,
const JobAction & JA )

◆ addLTOOptions()

◆ addMachineOutlinerArgs()

void clang::driver::tools::addMachineOutlinerArgs ( const Driver & D,
const llvm::opt::ArgList & Args,
llvm::opt::ArgStringList & CmdArgs,
const llvm::Triple & Triple,
bool IsLTO,
const StringRef PluginOptPrefix = "" )

Definition at line 2864 of file CommonArgs.cpp.

References clang::driver::Driver::Diag().

Referenced by clang::driver::tools::Clang::ConstructJob().

◆ addMCModel()

void clang::driver::tools::addMCModel ( const Driver & D,
const llvm::opt::ArgList & Args,
const llvm::Triple & Triple,
const llvm::Reloc::Model & RelocationModel,
llvm::opt::ArgStringList & CmdArgs )

◆ addMultilibFlag()

◆ addOffloadCompressArgs()

void clang::driver::tools::addOffloadCompressArgs ( const llvm::opt::ArgList & TCArgs,
llvm::opt::ArgStringList & CmdArgs )

◆ addOpenCLBuiltinsLib()

void clang::driver::tools::addOpenCLBuiltinsLib ( const Driver & D,
const llvm::opt::ArgList & DriverArgs,
llvm::opt::ArgStringList & CC1Args )

◆ addOpenMPDeviceRTL()

void clang::driver::tools::addOpenMPDeviceRTL ( const Driver & D,
const llvm::opt::ArgList & DriverArgs,
llvm::opt::ArgStringList & CC1Args,
StringRef BitcodeSuffix,
const llvm::Triple & Triple,
const ToolChain & HostTC )

◆ addOpenMPHostOffloadingArgs()

void clang::driver::tools::addOpenMPHostOffloadingArgs ( const Compilation & C,
const JobAction & JA,
const llvm::opt::ArgList & Args,
llvm::opt::ArgStringList & CmdArgs )

Adds offloading options for OpenMP host compilation to CmdArgs.

Definition at line 1444 of file CommonArgs.cpp.

References clang::C, clang::driver::Action::isHostOffloading(), and clang::driver::Action::OFK_OpenMP.

Referenced by clang::driver::tools::Clang::ConstructJob().

◆ addOpenMPRuntime()

◆ addOpenMPRuntimeLibraryPath()

void clang::driver::tools::addOpenMPRuntimeLibraryPath ( const ToolChain & TC,
const llvm::opt::ArgList & Args,
llvm::opt::ArgStringList & CmdArgs )

◆ addOutlineAtomicsArgs()

void clang::driver::tools::addOutlineAtomicsArgs ( const Driver & D,
const ToolChain & TC,
const llvm::opt::ArgList & Args,
llvm::opt::ArgStringList & CmdArgs,
const llvm::Triple & Triple )

◆ addPathIfExists()

◆ AddRunTimeLibs()

◆ addSanitizerRuntimes()

◆ AddStaticDeviceLibs()

void clang::driver::tools::AddStaticDeviceLibs ( Compilation * C,
const Tool * T,
const JobAction * JA,
const InputInfoList * Inputs,
const Driver & D,
const llvm::opt::ArgList & DriverArgs,
llvm::opt::ArgStringList & CmdArgs,
StringRef Arch,
StringRef Target,
bool isBitCodeSDL )

◆ AddStaticDeviceLibsLinking()

void clang::driver::tools::AddStaticDeviceLibsLinking ( Compilation & C,
const Tool & T,
const JobAction & JA,
const InputInfoList & Inputs,
const llvm::opt::ArgList & DriverArgs,
llvm::opt::ArgStringList & CmdArgs,
StringRef Arch,
StringRef Target,
bool isBitCodeSDL )

Definition at line 2724 of file CommonArgs.cpp.

References AddStaticDeviceLibs(), Arch, clang::C, clang::T, and clang::Target.

◆ AddTargetFeature()

void clang::driver::tools::AddTargetFeature ( const llvm::opt::ArgList & Args,
std::vector< StringRef > & Features,
llvm::opt::OptSpecifier OnOpt,
llvm::opt::OptSpecifier OffOpt,
StringRef FeatureName )

◆ addX86AlignBranchArgs()

void clang::driver::tools::addX86AlignBranchArgs ( const Driver & D,
const llvm::opt::ArgList & Args,
llvm::opt::ArgStringList & CmdArgs,
bool IsLTO,
const StringRef PluginOptPrefix = "" )

◆ addXRayRuntime()

◆ areOptimizationsEnabled()

bool clang::driver::tools::areOptimizationsEnabled ( const llvm::opt::ArgList & Args)

◆ checkAMDGPUCodeObjectVersion()

void clang::driver::tools::checkAMDGPUCodeObjectVersion ( const Driver & D,
const llvm::opt::ArgList & Args )

◆ claimNoWarnArgs()

◆ complexRangeKindToStr()

◆ debugLevelToInfoKind()

llvm::codegenoptions::DebugInfoKind clang::driver::tools::debugLevelToInfoKind ( const llvm::opt::Arg & A)

Referenced by renderDebugOptions().

◆ DwarfVersionNum()

unsigned clang::driver::tools::DwarfVersionNum ( StringRef ArgValue)

Definition at line 2241 of file CommonArgs.cpp.

Referenced by CollectArgsForIntegratedAssembler(), and getDwarfVersion().

◆ escapeSpacesAndBackslashes()

void clang::driver::tools::escapeSpacesAndBackslashes ( const char * Arg,
llvm::SmallVectorImpl< char > & Res )

Add backslashes to escape spaces and other backslashes.

This is used for the space-separated argument list specified with the -dwarf-debug-flags option.

Definition at line 3184 of file CommonArgs.cpp.

Referenced by clang::driver::tools::ClangAs::ConstructJob(), and renderEscapedCommandLine().

◆ getAMDGPUCodeObjectVersion()

unsigned clang::driver::tools::getAMDGPUCodeObjectVersion ( const Driver & D,
const llvm::opt::ArgList & Args )

◆ getCPUName()

◆ getCXX20NamedModuleOutputPath()

llvm::SmallString< 256 > clang::driver::tools::getCXX20NamedModuleOutputPath ( const llvm::opt::ArgList & Args,
const char * BaseInput )

◆ getDebugFissionKind()

DwarfFissionKind clang::driver::tools::getDebugFissionKind ( const Driver & D,
const llvm::opt::ArgList & Args,
llvm::opt::Arg *& Arg )

◆ getDwarfNArg()

const llvm::opt::Arg * clang::driver::tools::getDwarfNArg ( const llvm::opt::ArgList & Args)

◆ getDwarfVersion()

◆ getLastCSProfileGenerateArg()

llvm::opt::Arg * clang::driver::tools::getLastCSProfileGenerateArg ( const llvm::opt::ArgList & Args)

Referenced by addPGOAndCoverageFlags().

◆ getLastProfileSampleUseArg()

llvm::opt::Arg * clang::driver::tools::getLastProfileSampleUseArg ( const llvm::opt::ArgList & Args)

◆ getLastProfileUseArg()

llvm::opt::Arg * clang::driver::tools::getLastProfileUseArg ( const llvm::opt::ArgList & Args)

◆ getLDMOption()

const char * clang::driver::tools::getLDMOption ( const llvm::Triple & T,
const llvm::opt::ArgList & Args )

◆ getLTOParallelism()

llvm::StringRef clang::driver::tools::getLTOParallelism ( const llvm::opt::ArgList & Args,
const Driver & D )

◆ getStaticPIE()

bool clang::driver::tools::getStaticPIE ( const llvm::opt::ArgList & Args,
const ToolChain & TC )

◆ getStatsFileName()

SmallString< 128 > clang::driver::tools::getStatsFileName ( const llvm::opt::ArgList & Args,
const InputInfo & Output,
const InputInfo & Input,
const Driver & D )

◆ getTargetFeatures()

void clang::driver::tools::getTargetFeatures ( const Driver & D,
const llvm::Triple & Triple,
const llvm::opt::ArgList & Args,
llvm::opt::ArgStringList & CmdArgs,
bool ForAS,
bool IsAux = false )

◆ handleColorDiagnosticsArgs()

void clang::driver::tools::handleColorDiagnosticsArgs ( const Driver & D,
const llvm::opt::ArgList & Args,
llvm::opt::ArgStringList & CmdArgs )

Handle the -f{no}-color-diagnostics and -f{no}-diagnostics-colors options.

Referenced by clang::driver::tools::Flang::ConstructJob(), and RenderDiagnosticsOptions().

◆ handleInterchangeLoopsArgs()

void clang::driver::tools::handleInterchangeLoopsArgs ( const llvm::opt::ArgList & Args,
llvm::opt::ArgStringList & CmdArgs )

Enable -floop-interchange based on the optimization level selected.

◆ handleTargetFeaturesGroup()

void clang::driver::tools::handleTargetFeaturesGroup ( const Driver & D,
const llvm::Triple & Triple,
const llvm::opt::ArgList & Args,
std::vector< StringRef > & Features,
llvm::opt::OptSpecifier Group )

Iterate Args and convert -mxxx to +xxx and -mno-xxx to -xxx and append it to Features.

Note: Since Features may contain default values before calling this function, or may be appended with entries to override arguments, entries in Features are not unique.

Referenced by clang::driver::tools::amdgpu::getAMDGPUTargetFeatures(), and getWebAssemblyTargetFeatures().

◆ handleVectorizeLoopsArgs()

void clang::driver::tools::handleVectorizeLoopsArgs ( const llvm::opt::ArgList & Args,
llvm::opt::ArgStringList & CmdArgs )

Enable -fvectorize based on the optimization level selected.

Referenced by clang::driver::tools::Clang::ConstructJob().

◆ handleVectorizeSLPArgs()

void clang::driver::tools::handleVectorizeSLPArgs ( const llvm::opt::ArgList & Args,
llvm::opt::ArgStringList & CmdArgs )

Enable -fslp-vectorize based on the optimization level selected.

Referenced by clang::driver::tools::Clang::ConstructJob().

◆ haveAMDGPUCodeObjectVersionArgument()

bool clang::driver::tools::haveAMDGPUCodeObjectVersionArgument ( const Driver & D,
const llvm::opt::ArgList & Args )

Definition at line 2859 of file CommonArgs.cpp.

References getAMDGPUCodeObjectArgument().

Referenced by handleAMDGPUCodeObjectVersionOptions().

◆ isObjCAutoRefCount()

bool clang::driver::tools::isObjCAutoRefCount ( const llvm::opt::ArgList & Args)

◆ isTLSDESCEnabled()

bool clang::driver::tools::isTLSDESCEnabled ( const ToolChain & TC,
const llvm::opt::ArgList & Args )

◆ isUseSeparateSections()

bool clang::driver::tools::isUseSeparateSections ( const llvm::Triple & Triple)

Definition at line 920 of file CommonArgs.cpp.

Referenced by clang::driver::tools::Clang::ConstructJob().

◆ linkSanitizerRuntimeDeps()

◆ linkXRayRuntimeDeps()

◆ ParseFunctionAlignment()

unsigned clang::driver::tools::ParseFunctionAlignment ( const ToolChain & TC,
const llvm::opt::ArgList & Args )

◆ parseMPreferVectorWidthOption()

StringRef clang::driver::tools::parseMPreferVectorWidthOption ( clang::DiagnosticsEngine & Diags,
const llvm::opt::ArgList & Args )

◆ parseMRecipOption()

StringRef clang::driver::tools::parseMRecipOption ( clang::DiagnosticsEngine & Diags,
const llvm::opt::ArgList & Args )

◆ ParsePICArgs()

◆ RelocationModelName()

const char * clang::driver::tools::RelocationModelName ( llvm::Reloc::Model Model)

◆ renderCommonIntegerOverflowOptions()

void clang::driver::tools::renderCommonIntegerOverflowOptions ( const llvm::opt::ArgList & Args,
llvm::opt::ArgStringList & CmdArgs )

◆ renderComplexRangeOption()

std::string clang::driver::tools::renderComplexRangeOption ( LangOptions::ComplexRangeKind Range)

Definition at line 3525 of file CommonArgs.cpp.

References complexRangeKindToStr().

Referenced by addFloatingPointOptions(), and RenderFloatingPointOptions().

◆ renderEscapedCommandLine()

const char * clang::driver::tools::renderEscapedCommandLine ( const ToolChain & TC,
const llvm::opt::ArgList & Args )

Join the args in the given ArgList, escape spaces and backslashes and return the joined string.

This is used when saving the command line as a result of using either the -frecord-command-line or -grecord-command-line options. The lifetime of the returned c-string will match that of the Args argument.

Definition at line 3199 of file CommonArgs.cpp.

References escapeSpacesAndBackslashes(), clang::driver::Driver::getClangProgramPath(), and clang::driver::ToolChain::getDriver().

Referenced by clang::driver::tools::Clang::ConstructJob(), and clang::driver::tools::Flang::ConstructJob().

◆ shouldEnableVectorizerAtOLevel()

bool clang::driver::tools::shouldEnableVectorizerAtOLevel ( const llvm::opt::ArgList & Args,
bool isSlpVec )

◆ shouldRecordCommandLine()

bool clang::driver::tools::shouldRecordCommandLine ( const ToolChain & TC,
const llvm::opt::ArgList & Args,
bool & FRecordCommandLine,
bool & GRecordCommandLine )

Check if the command line should be recorded in the object file.

This is done if either -frecord-command-line or -grecord-command-line options have been passed. This also does some error checking since -frecord-command-line is currently only supported on ELF platforms. The last two boolean arguments are out parameters and will be set depending on the command line options that were passed.

Definition at line 3220 of file CommonArgs.cpp.

References clang::driver::Driver::Diag(), clang::driver::ToolChain::getDriver(), clang::driver::ToolChain::getEffectiveTriple(), and clang::driver::ToolChain::UseDwarfDebugFlags().

Referenced by clang::driver::tools::Clang::ConstructJob(), and clang::driver::tools::Flang::ConstructJob().

◆ SplitDebugInfo()

void clang::driver::tools::SplitDebugInfo ( const ToolChain & TC,
Compilation & C,
const Tool & T,
const JobAction & JA,
const llvm::opt::ArgList & Args,
const InputInfo & Output,
const char * OutFile )

◆ SplitDebugName()

const char * clang::driver::tools::SplitDebugName ( const JobAction & JA,
const llvm::opt::ArgList & Args,
const InputInfo & Input,
const InputInfo & Output )

◆ unifyTargetFeatures()

SmallVector< StringRef > clang::driver::tools::unifyTargetFeatures ( ArrayRef< StringRef > Features)

If there are multiple +xxx or -xxx features, keep the last one.

Definition at line 395 of file CommonArgs.cpp.

References Feature.

Referenced by getAArch64MultilibFlags(), and getARMMultilibFlags().