clang
3.9.0
|
#include "clang/Driver/Driver.h"
#include "InputInfo.h"
#include "ToolChains.h"
#include "clang/Basic/Version.h"
#include "clang/Basic/VirtualFileSystem.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/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/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/FileSystem.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/PrettyStackTrace.h"
#include "llvm/Support/Process.h"
#include "llvm/Support/Program.h"
#include "llvm/Support/raw_ostream.h"
#include <map>
#include <memory>
#include <utility>
Go to the source code of this file.
Functions | |
static Arg * | MakeInputArg (DerivedArgList &Args, OptTable *Opts, StringRef Value) |
static llvm::Triple | computeTargetTriple (const Driver &D, StringRef DefaultTargetTriple, const ArgList &Args, StringRef DarwinArchName="") |
Compute target triple from args. 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) |
static bool | ContainsCompileOrAssembleAction (const Action *A) |
Check whether the given input tree contains any compilation or assembly actions. More... | |
static bool | DiagnoseInputExistence (const Driver &D, const DerivedArgList &Args, StringRef Value, types::ID Ty) |
Check that the file referenced by Value exists. More... | |
static Action * | buildCudaActions (Compilation &C, DerivedArgList &Args, const Arg *InputArg, Action *HostAction, ActionList &Actions) |
template<typename T > | |
static OffloadAction * | collapseOffloadingAction (Action *&CurAction) |
Collapse an offloading action looking for a job of the given type. More... | |
static const Tool * | selectToolForJob (Compilation &C, bool SaveTemps, bool EmbedBitcode, const ToolChain *TC, const JobAction *JA, const ActionList *&Inputs, ActionList &CollapsedOffloadAction) |
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) |
|
static |
Definition at line 1398 of file Driver.cpp.
References clang::driver::OffloadAction::DeviceDependences::add(), clang::driver::Action::AssembleJobClass, clang::driver::Driver::BuildActions(), clang::CudaArchToString(), clang::driver::Driver::Diag(), E, clang::driver::Compilation::getDriver(), clang::driver::Action::getInputs(), clang::driver::Action::getKind(), clang::driver::Compilation::getSingleOffloadToolChain(), clang::driver::Action::getType(), I, clang::driver::Compilation::MakeAction(), clang::driver::Action::OFK_Cuda, clang::driver::Action::OFK_Host, clang::SM_20, clang::StringToCudaArch(), and clang::UNKNOWN.
Referenced by clang::driver::Driver::BuildActions().
|
static |
Collapse an offloading action looking for a job of the given type.
The input action is changed to the input of the collapsed sequence. If we effectively had a collapse return the corresponding offloading action, otherwise return null.
Definition at line 1949 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 305 of file Driver.cpp.
References clang::driver::Driver::Diag(), normalize(), and clang::driver::tools::darwin::setTripleTypeForMachOArchName().
Referenced by clang::driver::Driver::BuildCompilation().
Check whether the given input tree contains any compilation or assembly actions.
Definition at line 1098 of file Driver.cpp.
References Input, and clang::driver::Action::inputs().
Referenced by clang::driver::Driver::BuildUniversalActions().
|
static |
Check that the file referenced by Value exists.
If it doesn't, issue a diagnostic and return false.
Definition at line 1199 of file Driver.cpp.
References clang::driver::Driver::Diag(), clang::driver::Driver::getCheckInputsExist(), and clang::driver::Driver::IsCLMode().
Referenced by clang::driver::Driver::BuildInputs().
|
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 2285 of file Driver.cpp.
References Filename, and clang::driver::types::getTypeTempSuffix().
Referenced by clang::driver::Driver::GetNamedOutputPath().
|
static |
Definition at line 203 of file Driver.cpp.
Referenced by clang::driver::Driver::BuildActions(), and clang::driver::Driver::BuildInputs().
|
static |
Definition at line 1013 of file Driver.cpp.
References clang::driver::Action::getClassName(), clang::driver::Action::getInputs(), clang::driver::Action::getKind(), clang::driver::Action::getOffloadingArch(), clang::driver::Action::getOffloadingKindPrefix(), clang::driver::ToolChain::getTriple(), clang::driver::Action::getType(), clang::driver::types::getTypeName(), and S.
Referenced by clang::driver::Driver::PrintActions().
|
static |
Definition at line 600 of file Driver.cpp.
References E, I, and clang::driver::Command::printArg().
Referenced by clang::driver::Driver::generateCompilationDiagnostics().
|
static |
PrintDiagnosticCategories - Implement the –print-diagnostic-categories option.
Definition at line 890 of file Driver.cpp.
References clang::DiagnosticIDs::getCategoryNameFromID(), clang::DiagnosticIDs::getNumberOfCategories(), and max().
Referenced by clang::driver::Driver::HandleImmediateArgs().
|
static |
Definition at line 2521 of file Driver.cpp.
References clang::Name.
Referenced by clang::driver::Driver::GetProgramPath().
|
static |
Definition at line 1971 of file Driver.cpp.
References clang::driver::Tool::canEmitIR(), clang::EmbedBitcode(), clang::driver::Compilation::getArgs(), clang::driver::Action::getInputs(), clang::driver::Tool::hasIntegratedAssembler(), clang::driver::Tool::hasIntegratedCPP(), clang::driver::ToolChain::SelectTool(), and clang::driver::ToolChain::useIntegratedAs().