clang
10.0.0git
|
#include "clang/Driver/Driver.h"
#include "InputInfo.h"
#include "ToolChains/AIX.h"
#include "ToolChains/AMDGPU.h"
#include "ToolChains/AVR.h"
#include "ToolChains/Ananas.h"
#include "ToolChains/BareMetal.h"
#include "ToolChains/Clang.h"
#include "ToolChains/CloudABI.h"
#include "ToolChains/Contiki.h"
#include "ToolChains/CrossWindows.h"
#include "ToolChains/Cuda.h"
#include "ToolChains/Darwin.h"
#include "ToolChains/DragonFly.h"
#include "ToolChains/FreeBSD.h"
#include "ToolChains/Fuchsia.h"
#include "ToolChains/Gnu.h"
#include "ToolChains/HIP.h"
#include "ToolChains/Haiku.h"
#include "ToolChains/Hexagon.h"
#include "ToolChains/Hurd.h"
#include "ToolChains/Lanai.h"
#include "ToolChains/Linux.h"
#include "ToolChains/MSP430.h"
#include "ToolChains/MSVC.h"
#include "ToolChains/MinGW.h"
#include "ToolChains/Minix.h"
#include "ToolChains/MipsLinux.h"
#include "ToolChains/Myriad.h"
#include "ToolChains/NaCl.h"
#include "ToolChains/NetBSD.h"
#include "ToolChains/OpenBSD.h"
#include "ToolChains/PS4CPU.h"
#include "ToolChains/PPCLinux.h"
#include "ToolChains/RISCVToolchain.h"
#include "ToolChains/Solaris.h"
#include "ToolChains/TCE.h"
#include "ToolChains/WebAssembly.h"
#include "ToolChains/XCore.h"
#include "clang/Basic/Version.h"
#include "clang/Config/config.h"
#include "clang/Driver/Action.h"
#include "clang/Driver/Compilation.h"
#include "clang/Driver/DriverDiagnostic.h"
#include "clang/Driver/Job.h"
#include "clang/Driver/Options.h"
#include "clang/Driver/SanitizerArgs.h"
#include "clang/Driver/Tool.h"
#include "clang/Driver/ToolChain.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/SmallSet.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/ADT/StringSet.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Config/llvm-config.h"
#include "llvm/Option/Arg.h"
#include "llvm/Option/ArgList.h"
#include "llvm/Option/OptSpecifier.h"
#include "llvm/Option/OptTable.h"
#include "llvm/Option/Option.h"
#include "llvm/Support/CommandLine.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/FormatVariadic.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/PrettyStackTrace.h"
#include "llvm/Support/Process.h"
#include "llvm/Support/Program.h"
#include "llvm/Support/StringSaver.h"
#include "llvm/Support/TargetRegistry.h"
#include "llvm/Support/VirtualFileSystem.h"
#include "llvm/Support/raw_ostream.h"
#include <map>
#include <memory>
#include <utility>
Go to the source code of this file.
Enumerations | |
enum | { TopLevelAction = 0, HeadSibAction = 1, OtherSibAction = 2 } |
Functions | |
static Arg * | MakeInputArg (DerivedArgList &Args, const OptTable &Opts, StringRef Value, bool Claim=true) |
static llvm::Triple | computeTargetTriple (const Driver &D, StringRef TargetTriple, const ArgList &Args, StringRef DarwinArchName="") |
Compute target triple from args. More... | |
static bool | searchForFile (SmallVectorImpl< char > &FilePath, ArrayRef< std::string > Dirs, StringRef FileName) |
Looks the given directories for the specified file. More... | |
static void | printArgList (raw_ostream &OS, const llvm::opt::ArgList &Args) |
static void | PrintDiagnosticCategories (raw_ostream &OS) |
PrintDiagnosticCategories - Implement the –print-diagnostic-categories option. More... | |
static unsigned | PrintActions1 (const Compilation &C, Action *A, std::map< Action *, unsigned > &Ids, Twine Indent={}, int Kind=TopLevelAction) |
static bool | ContainsCompileOrAssembleAction (const Action *A) |
Check whether the given input tree contains any compilation or assembly actions. More... | |
static std::string | GetTriplePlusArchString (const ToolChain *TC, StringRef BoundArch, Action::OffloadKind OffloadKind) |
Return a string that uniquely identifies the result of a job. More... | |
static const char * | MakeCLOutputFilename (const ArgList &Args, StringRef ArgValue, StringRef BaseName, types::ID FileType) |
Create output filename based on ArgValue, which could either be a full filename, filename without extension, or a directory. More... | |
static bool | ScanDirForExecutable (SmallString< 128 > &Dir, ArrayRef< std::string > Names) |
anonymous enum |
Enumerator | |
---|---|
TopLevelAction | |
HeadSibAction | |
OtherSibAction |
Definition at line 1818 of file Driver.cpp.
|
static |
Compute target triple from args.
This routine provides the logic to compute a target triple from various args passed to the driver and the default triple string.
Definition at line 418 of file Driver.cpp.
References clang::driver::Driver::Diag(), clang::interp::LE(), clang::driver::LTOK_Full, clang::driver::LTOK_None, clang::driver::LTOK_Thin, clang::driver::LTOK_Unknown, normalize(), clang::driver::tools::darwin::setTripleTypeForMachOArchName(), and clang::Target.
Referenced by clang::driver::Driver::BuildJobsForAction(), and searchForFile().
Check whether the given input tree contains any compilation or assembly actions.
Definition at line 1925 of file Driver.cpp.
References clang::driver::Action::inputs().
Referenced by clang::driver::Driver::BuildUniversalActions().
|
static |
Return a string that uniquely identifies the result of a job.
The bound arch is not necessarily represented in the toolchain's triple – for example, armv7 and armv7s both map to the same triple – so we need both in our map. Also, we need to add the offloading device kind, as the same tool chain can be used for host and device for some programming models, e.g. OpenMP.
Definition at line 4111 of file Driver.cpp.
References clang::driver::Action::GetOffloadKindName(), and clang::driver::ToolChain::getTriple().
Referenced by clang::driver::Driver::BuildJobsForAction().
|
static |
Create output filename based on ArgValue, which could either be a full filename, filename without extension, or a directory.
If ArgValue does not provide a filename, then use BaseName, and use the extension suitable for FileType.
Definition at line 4427 of file Driver.cpp.
References Filename, and clang::driver::types::getTypeTempSuffix().
Referenced by clang::driver::Driver::GetNamedOutputPath().
|
static |
Definition at line 313 of file Driver.cpp.
References clang::driver::Driver::getOpts().
Referenced by clang::driver::Driver::BuildInputs().
|
static |
Definition at line 1827 of file Driver.cpp.
References clang::driver::Action::getClassName(), clang::driver::Action::getInputs(), clang::driver::Action::getKind(), clang::driver::Action::getOffloadingKindPrefix(), clang::driver::ToolChain::getTriple(), HeadSibAction, clang::Indent(), OtherSibAction, and TopLevelAction.
Referenced by clang::driver::Driver::PrintActions().
|
static |
Definition at line 1151 of file Driver.cpp.
References clang::driver::Driver::Name, and clang::driver::Command::printArg().
Referenced by clang::driver::Driver::generateCompilationDiagnostics().
|
static |
PrintDiagnosticCategories - Implement the –print-diagnostic-categories option.
Definition at line 1573 of file Driver.cpp.
References clang::DiagnosticIDs::getCategoryNameFromID(), clang::DiagnosticIDs::getNumberOfCategories(), and max().
Referenced by clang::driver::Driver::HandleImmediateArgs().
|
static |
Definition at line 4704 of file Driver.cpp.
References clang::driver::Driver::Name.
Referenced by clang::driver::Driver::GetProgramPath().
|
static |
Looks the given directories for the specified file.
[out] | FilePath | File path, if the file was found. |
[in] | Dirs | Directories used for the search. |
[in] | FileName | Name of the file to search for. |
Looks for file specified by FileName sequentially in directories specified by Dirs.
Definition at line 743 of file Driver.cpp.
References clang::driver::Driver::ClangNameParts, computeTargetTriple(), clang::driver::Driver::Diag(), clang::driver::Driver::Dir, clang::if(), clang::driver::Driver::IsCLMode(), clang::driver::ParsedClangName::ModeSuffix, normalize(), clang::driver::Driver::ParseArgStrings(), clang::driver::Driver::SystemConfigDir, clang::driver::ParsedClangName::TargetPrefix, and clang::driver::Driver::UserConfigDir.