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

#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 llvm::opt::InputArgList & getInputArgs () const
 
const llvm::opt::DerivedArgList & getArgs () const
 
llvm::opt::DerivedArgList & getArgs ()
 
ActionListgetActions ()
 
const ActionListgetActions () const
 
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)
 
const char * addTempFile (const char *Name)
 
const char * addResultFile (const char *Name, const JobAction *JA)
 
const char * addFailureResultFile (const char *Name, const JobAction *JA)
 
bool CleanupFile (const char *File, bool IssueErrors=false) const
 
bool CleanupFileList (const llvm::opt::ArgStringList &Files, bool IssueErrors=false) const
 
bool CleanupFileMap (const ArgStringMap &Files, const JobAction *JA, bool IssueErrors=false) const
 
int ExecuteCommand (const Command &C, const Command *&FailingCommand) const
 
void ExecuteJobs (const JobList &Jobs, SmallVectorImpl< std::pair< int, const Command * >> &FailingCommands) const
 
void initCompilationForDiagnostics ()
 
bool isForDiagnostics ()
 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 31 of file Compilation.cpp.

Member Function Documentation

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

Definition at line 97 of file Compilation.h.

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

Referenced by 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::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(), 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 133 of file Compilation.h.

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 126 of file Compilation.h.

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 119 of file Compilation.h.

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 70 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 100 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 109 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 125 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 195 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 92 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 89 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 55 of file Compilation.cpp.

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

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

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 103 of file Compilation.h.

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

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

Definition at line 85 of file Compilation.h.

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

JobList& clang::driver::Compilation::getJobs ( )
inline
const JobList& clang::driver::Compilation::getJobs ( ) const
inline

Definition at line 95 of file Compilation.h.

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

Definition at line 101 of file Compilation.h.

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

StringRef Compilation::getSysRoot ( ) const

Returns the sysroot path.

Definition at line 235 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 206 of file Compilation.cpp.

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

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

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

Return true if we're compiling for diagnostics.

Definition at line 182 of file Compilation.h.

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


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