clang  3.9.0
Functions
Driver.cpp File Reference
#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>
Include dependency graph for Driver.cpp:

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 ActionbuildCudaActions (Compilation &C, DerivedArgList &Args, const Arg *InputArg, Action *HostAction, ActionList &Actions)
 
template<typename T >
static OffloadActioncollapseOffloadingAction (Action *&CurAction)
 Collapse an offloading action looking for a job of the given type. More...
 
static const ToolselectToolForJob (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)
 

Function Documentation

static Action* buildCudaActions ( Compilation C,
DerivedArgList &  Args,
const Arg *  InputArg,
Action HostAction,
ActionList Actions 
)
static
template<typename T >
static OffloadAction* collapseOffloadingAction ( Action *&  CurAction)
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 llvm::Triple computeTargetTriple ( const Driver D,
StringRef  DefaultTargetTriple,
const ArgList &  Args,
StringRef  DarwinArchName = "" 
)
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().

static bool ContainsCompileOrAssembleAction ( const Action A)
static

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 bool DiagnoseInputExistence ( const Driver D,
const DerivedArgList &  Args,
StringRef  Value,
types::ID  Ty 
)
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 const char* MakeCLOutputFilename ( const ArgList &  Args,
StringRef  ArgValue,
StringRef  BaseName,
types::ID  FileType 
)
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 Arg* MakeInputArg ( DerivedArgList &  Args,
OptTable *  Opts,
StringRef  Value 
)
static
static unsigned PrintActions1 ( const Compilation C,
Action A,
std::map< Action *, unsigned > &  Ids 
)
static
static void printArgList ( raw_ostream &  OS,
const llvm::opt::ArgList &  Args 
)
static
static void PrintDiagnosticCategories ( raw_ostream &  OS)
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 bool ScanDirForExecutable ( SmallString< 128 > &  Dir,
ArrayRef< std::string >  Names 
)
static

Definition at line 2521 of file Driver.cpp.

References clang::Name.

Referenced by clang::driver::Driver::GetProgramPath().

static const Tool* selectToolForJob ( Compilation C,
bool  SaveTemps,
bool  EmbedBitcode,
const ToolChain TC,
const JobAction JA,
const ActionList *&  Inputs,
ActionList CollapsedOffloadAction 
)
static