clang  3.8.0
Public Member Functions | List of all members
clang::driver::Compilation Class Reference

Compilation - A set of tasks to perform for a single driver invocation. More...

#include <Compilation.h>

Public Member Functions

 Compilation (const Driver &D, const ToolChain &DefaultToolChain, llvm::opt::InputArgList *Args, llvm::opt::DerivedArgList *TranslatedArgs)
 
 ~Compilation ()
 
const DrivergetDriver () const
 
const ToolChaingetDefaultToolChain () const
 
const ToolChaingetCudaHostToolChain () const
 
const ToolChaingetCudaDeviceToolChain () const
 
void setCudaHostToolChain (const ToolChain *HostToolChain)
 
void setCudaDeviceToolChain (const ToolChain *DeviceToolChain)
 
const llvm::opt::InputArgList & getInputArgs () const
 
const llvm::opt::DerivedArgList & getArgs () const
 
llvm::opt::DerivedArgList & getArgs ()
 
ActionListgetActions ()
 
const ActionListgetActions () const
 
template<typename T , typename... Args>
T * MakeAction (Args &&...Arg)
 Creates a new Action owned by this Compilation. More...
 
JobListgetJobs ()
 
const JobListgetJobs () const
 
void addCommand (std::unique_ptr< Command > C)
 
const llvm::opt::ArgStringList & getTempFiles () const
 
const ArgStringMapgetResultFiles () const
 
const ArgStringMapgetFailureResultFiles () const
 
StringRef getSysRoot () const
 Returns the sysroot path. More...
 
const llvm::opt::DerivedArgList & getArgsForToolChain (const ToolChain *TC, const char *BoundArch)
 getArgsForToolChain - Return the derived argument list for the tool chain TC (or the default tool chain, if TC is not specified). More...
 
const char * addTempFile (const char *Name)
 addTempFile - Add a file to remove on exit, and returns its argument. More...
 
const char * addResultFile (const char *Name, const JobAction *JA)
 addResultFile - Add a file to remove on failure, and returns its argument. More...
 
const char * addFailureResultFile (const char *Name, const JobAction *JA)
 addFailureResultFile - Add a file to remove if we crash, and returns its argument. More...
 
bool CleanupFile (const char *File, bool IssueErrors=false) const
 CleanupFile - Delete a given file. More...
 
bool CleanupFileList (const llvm::opt::ArgStringList &Files, bool IssueErrors=false) const
 CleanupFileList - Remove the files in the given list. More...
 
bool CleanupFileMap (const ArgStringMap &Files, const JobAction *JA, bool IssueErrors=false) const
 CleanupFileMap - Remove the files in the given map. More...
 
int ExecuteCommand (const Command &C, const Command *&FailingCommand) const
 ExecuteCommand - Execute an actual command. More...
 
void ExecuteJobs (const JobList &Jobs, SmallVectorImpl< std::pair< int, const Command * >> &FailingCommands) const
 ExecuteJob - Execute a single job. More...
 
void initCompilationForDiagnostics ()
 initCompilationForDiagnostics - Remove stale state and suppress output so compilation can be reexecuted to generate additional diagnostic information (e.g., preprocessed source(s)). More...
 
bool isForDiagnostics () const
 Return true if we're compiling for diagnostics. More...
 

Detailed Description

Compilation - A set of tasks to perform for a single driver invocation.

Definition at line 34 of file Compilation.h.

Constructor & Destructor Documentation

Compilation::Compilation ( const Driver D,
const ToolChain DefaultToolChain,
llvm::opt::InputArgList *  Args,
llvm::opt::DerivedArgList *  TranslatedArgs 
)

Definition at line 25 of file Compilation.cpp.

Compilation::~Compilation ( )

Definition at line 32 of file Compilation.cpp.

Member Function Documentation

void clang::driver::Compilation::addCommand ( std::unique_ptr< Command C)
inline

Definition at line 125 of file Compilation.h.

References clang::driver::JobList::addJob().

Referenced by ConstructGoldLinkJob(), clang::driver::tools::Clang::ConstructJob(), clang::driver::tools::ClangAs::ConstructJob(), clang::driver::tools::gcc::Common::ConstructJob(), clang::driver::tools::hexagon::Assembler::ConstructJob(), clang::driver::tools::hexagon::Linker::ConstructJob(), clang::driver::tools::amdgpu::Linker::ConstructJob(), clang::driver::tools::wasm::Linker::ConstructJob(), clang::driver::tools::cloudabi::Linker::ConstructJob(), clang::driver::tools::darwin::Assembler::ConstructJob(), clang::driver::tools::darwin::Linker::ConstructJob(), clang::driver::tools::darwin::Lipo::ConstructJob(), clang::driver::tools::darwin::Dsymutil::ConstructJob(), clang::driver::tools::darwin::VerifyDebug::ConstructJob(), clang::driver::tools::openbsd::Assembler::ConstructJob(), clang::driver::tools::openbsd::Linker::ConstructJob(), clang::driver::tools::bitrig::Assembler::ConstructJob(), clang::driver::tools::bitrig::Linker::ConstructJob(), clang::driver::tools::freebsd::Assembler::ConstructJob(), clang::driver::tools::freebsd::Linker::ConstructJob(), clang::driver::tools::netbsd::Assembler::ConstructJob(), clang::driver::tools::netbsd::Linker::ConstructJob(), clang::driver::tools::gnutools::Assembler::ConstructJob(), clang::driver::tools::gnutools::Linker::ConstructJob(), clang::driver::tools::nacltools::Linker::ConstructJob(), clang::driver::tools::minix::Assembler::ConstructJob(), clang::driver::tools::minix::Linker::ConstructJob(), clang::driver::tools::solaris::Assembler::ConstructJob(), clang::driver::tools::solaris::Linker::ConstructJob(), clang::driver::tools::dragonfly::Assembler::ConstructJob(), clang::driver::tools::dragonfly::Linker::ConstructJob(), clang::driver::tools::visualstudio::Linker::ConstructJob(), clang::driver::tools::visualstudio::Compiler::ConstructJob(), clang::driver::tools::MinGW::Assembler::ConstructJob(), clang::driver::tools::MinGW::Linker::ConstructJob(), clang::driver::tools::XCore::Assembler::ConstructJob(), clang::driver::tools::XCore::Linker::ConstructJob(), clang::driver::tools::CrossWindows::Assembler::ConstructJob(), clang::driver::tools::CrossWindows::Linker::ConstructJob(), clang::driver::tools::SHAVE::Compiler::ConstructJob(), clang::driver::tools::SHAVE::Assembler::ConstructJob(), clang::driver::tools::Myriad::Linker::ConstructJob(), clang::driver::tools::PS4cpu::Assemble::ConstructJob(), ConstructPS4LinkJob(), and SplitDebugInfo().

const char* clang::driver::Compilation::addFailureResultFile ( const char *  Name,
const JobAction JA 
)
inline

addFailureResultFile - Add a file to remove if we crash, and returns its argument.

Definition at line 161 of file Compilation.h.

References clang::Name.

const char* clang::driver::Compilation::addResultFile ( const char *  Name,
const JobAction JA 
)
inline

addResultFile - Add a file to remove on failure, and returns its argument.

Definition at line 154 of file Compilation.h.

References clang::Name.

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

const char* clang::driver::Compilation::addTempFile ( const char *  Name)
inline

addTempFile - Add a file to remove on exit, and returns its argument.

Definition at line 147 of file Compilation.h.

References clang::Name.

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

bool Compilation::CleanupFile ( const char *  File,
bool  IssueErrors = false 
) const

CleanupFile - Delete a given file.

Parameters
IssueErrors- Report failures as errors.
Returns
Whether the file was removed successfully.

Definition at line 66 of file Compilation.cpp.

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

Referenced by CleanupFileList(), and CleanupFileMap().

bool Compilation::CleanupFileList ( const llvm::opt::ArgStringList &  Files,
bool  IssueErrors = false 
) const

CleanupFileList - Remove the files in the given list.

Parameters
IssueErrors- Report failures as errors.
Returns
Whether all files were removed successfully.

Definition at line 96 of file Compilation.cpp.

References CleanupFile().

Referenced by clang::driver::Driver::ExecuteCompilation(), and clang::driver::Driver::generateCompilationDiagnostics().

bool Compilation::CleanupFileMap ( const ArgStringMap Files,
const JobAction JA,
bool  IssueErrors = false 
) const

CleanupFileMap - Remove the files in the given map.

Parameters
JA- If specified, only delete the files associated with this JobAction. Otherwise, delete all files in the map.
IssueErrors- Report failures as errors.
Returns
Whether all files were removed successfully.

Definition at line 105 of file Compilation.cpp.

References CleanupFile().

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

int Compilation::ExecuteCommand ( const Command C,
const Command *&  FailingCommand 
) const

ExecuteCommand - Execute an actual command.

Parameters
FailingCommand- For non-zero results, this will be set to the Command which failed, if any.
Returns
The result code of the subprocess.

Definition at line 121 of file Compilation.cpp.

References AttributeLangSupport::C, clang::driver::Driver::Diag(), clang::driver::Command::Execute(), getArgs(), getDriver(), and clang::driver::Command::Print().

Referenced by ExecuteJobs().

void Compilation::ExecuteJobs ( const JobList Jobs,
SmallVectorImpl< std::pair< int, const Command * >> &  FailingCommands 
) const

ExecuteJob - Execute a single job.

Parameters
FailingCommands- For non-zero results, this will be a vector of failing commands and their associated result code.

Definition at line 191 of file Compilation.cpp.

References ExecuteCommand(), and InputsOk().

Referenced by clang::driver::Driver::ExecuteCompilation(), and clang::driver::Driver::generateCompilationDiagnostics().

ActionList& clang::driver::Compilation::getActions ( )
inline
const ActionList& clang::driver::Compilation::getActions ( ) const
inline

Definition at line 111 of file Compilation.h.

const llvm::opt::DerivedArgList& clang::driver::Compilation::getArgs ( ) const
inline
llvm::opt::DerivedArgList& clang::driver::Compilation::getArgs ( )
inline

Definition at line 108 of file Compilation.h.

const DerivedArgList & Compilation::getArgsForToolChain ( const ToolChain TC,
const char *  BoundArch 
)

getArgsForToolChain - Return the derived argument list for the tool chain TC (or the default tool chain, if TC is not specified).

Parameters
BoundArch- The bound architecture name, or 0.

Definition at line 51 of file Compilation.cpp.

References clang::driver::ToolChain::TranslateArgs().

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

const ToolChain* clang::driver::Compilation::getCudaDeviceToolChain ( ) const
inline
const ToolChain* clang::driver::Compilation::getCudaHostToolChain ( ) const
inline

Definition at line 92 of file Compilation.h.

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

const ToolChain& clang::driver::Compilation::getDefaultToolChain ( ) const
inline
const Driver& clang::driver::Compilation::getDriver ( ) const
inline
const ArgStringMap& clang::driver::Compilation::getFailureResultFiles ( ) const
inline

Definition at line 131 of file Compilation.h.

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

const llvm::opt::InputArgList& clang::driver::Compilation::getInputArgs ( ) const
inline
JobList& clang::driver::Compilation::getJobs ( )
inline
const JobList& clang::driver::Compilation::getJobs ( ) const
inline

Definition at line 123 of file Compilation.h.

const ArgStringMap& clang::driver::Compilation::getResultFiles ( ) const
inline

Definition at line 129 of file Compilation.h.

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

StringRef Compilation::getSysRoot ( ) const

Returns the sysroot path.

Definition at line 232 of file Compilation.cpp.

References getDriver(), and clang::driver::Driver::SysRoot.

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

const llvm::opt::ArgStringList& clang::driver::Compilation::getTempFiles ( ) const
inline
void Compilation::initCompilationForDiagnostics ( )

initCompilationForDiagnostics - Remove stale state and suppress output so compilation can be reexecuted to generate additional diagnostic information (e.g., preprocessed source(s)).

Definition at line 202 of file Compilation.cpp.

References clang::driver::JobList::clear().

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

bool clang::driver::Compilation::isForDiagnostics ( ) const
inline

Return true if we're compiling for diagnostics.

Definition at line 210 of file Compilation.h.

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

template<typename T , typename... Args>
T* clang::driver::Compilation::MakeAction ( Args &&...  Arg)
inline

Creates a new Action owned by this Compilation.

The new Action is not added to the list returned by getActions().

Definition at line 116 of file Compilation.h.

Referenced by clang::driver::Driver::BuildActions(), buildCudaActions(), clang::driver::Driver::BuildUniversalActions(), and clang::driver::Driver::ConstructPhaseAction().

void clang::driver::Compilation::setCudaDeviceToolChain ( const ToolChain DeviceToolChain)
inline

Definition at line 100 of file Compilation.h.

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

void clang::driver::Compilation::setCudaHostToolChain ( const ToolChain HostToolChain)
inline

Definition at line 97 of file Compilation.h.


The documentation for this class was generated from the following files: