clang
3.9.0
|
Compilation - A set of tasks to perform for a single driver invocation. More...
#include <Compilation.h>
Public Types | |
typedef const std::multimap < Action::OffloadKind, const ToolChain * >::const_iterator | const_offload_toolchains_iterator |
Iterator that visits device toolchains of a given kind. More... | |
typedef std::pair < const_offload_toolchains_iterator, const_offload_toolchains_iterator > | const_offload_toolchains_range |
Public Member Functions | |
Compilation (const Driver &D, const ToolChain &DefaultToolChain, llvm::opt::InputArgList *Args, llvm::opt::DerivedArgList *TranslatedArgs) | |
~Compilation () | |
const Driver & | getDriver () const |
const ToolChain & | getDefaultToolChain () const |
unsigned | isOffloadingHostKind (Action::OffloadKind Kind) const |
template<Action::OffloadKind Kind> | |
const_offload_toolchains_range | getOffloadToolChains () const |
template<Action::OffloadKind Kind> | |
const ToolChain * | getSingleOffloadToolChain () const |
Return an offload toolchain of the provided kind. More... | |
void | addOffloadDeviceToolChain (const ToolChain *DeviceToolChain, Action::OffloadKind OffloadKind) |
const llvm::opt::InputArgList & | getInputArgs () const |
const llvm::opt::DerivedArgList & | getArgs () const |
llvm::opt::DerivedArgList & | getArgs () |
ActionList & | getActions () |
const ActionList & | getActions () const |
template<typename T , typename... Args> | |
T * | MakeAction (Args &&...Arg) |
Creates a new Action owned by this Compilation. More... | |
JobList & | getJobs () |
const JobList & | getJobs () const |
void | addCommand (std::unique_ptr< Command > C) |
const llvm::opt::ArgStringList & | getTempFiles () const |
const ArgStringMap & | getResultFiles () const |
const ArgStringMap & | getFailureResultFiles () 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... | |
void | Redirect (const StringRef **Redirects) |
Redirect - Redirect output of this compilation. More... | |
Compilation - A set of tasks to perform for a single driver invocation.
Definition at line 35 of file Compilation.h.
typedef const std::multimap<Action::OffloadKind, const ToolChain *>::const_iterator clang::driver::Compilation::const_offload_toolchains_iterator |
Iterator that visits device toolchains of a given kind.
Definition at line 109 of file Compilation.h.
typedef std::pair<const_offload_toolchains_iterator, const_offload_toolchains_iterator> clang::driver::Compilation::const_offload_toolchains_range |
Definition at line 112 of file Compilation.h.
Compilation::Compilation | ( | const Driver & | D, |
const ToolChain & | DefaultToolChain, | ||
llvm::opt::InputArgList * | Args, | ||
llvm::opt::DerivedArgList * | TranslatedArgs | ||
) |
Definition at line 25 of file Compilation.cpp.
References clang::driver::Action::OFK_Host.
Compilation::~Compilation | ( | ) |
Definition at line 35 of file Compilation.cpp.
|
inline |
Definition at line 164 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(), clang::driver::tools::NVPTX::Assembler::ConstructJob(), clang::driver::tools::NVPTX::Linker::ConstructJob(), ConstructPS4LinkJob(), and SplitDebugInfo().
|
inline |
addFailureResultFile - Add a file to remove if we crash, and returns its argument.
Definition at line 200 of file Compilation.h.
References clang::Name.
|
inline |
Definition at line 132 of file Compilation.h.
References clang::driver::Action::OFK_Host, and clang::driver::Action::OFK_None.
Referenced by clang::driver::Driver::CreateOffloadingDeviceToolChains().
|
inline |
addResultFile - Add a file to remove on failure, and returns its argument.
Definition at line 193 of file Compilation.h.
References clang::Name.
Referenced by clang::driver::Driver::GetNamedOutputPath().
|
inline |
addTempFile - Add a file to remove on exit, and returns its argument.
Definition at line 186 of file Compilation.h.
References clang::Name.
Referenced by clang::driver::tools::Clang::ConstructJob(), and clang::driver::Driver::GetNamedOutputPath().
CleanupFile - Delete a given file.
IssueErrors | - Report failures as errors. |
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.
IssueErrors | - Report failures as errors. |
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.
JA | - If specified, only delete the files associated with this JobAction. Otherwise, delete all files in the map. |
IssueErrors | - Report failures as errors. |
Definition at line 109 of file Compilation.cpp.
References CleanupFile().
Referenced by clang::driver::Driver::ExecuteCompilation().
ExecuteCommand - Execute an actual command.
FailingCommand | - For non-zero results, this will be set to the Command which failed, if any. |
Definition at line 125 of file Compilation.cpp.
References 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.
FailingCommands | - For non-zero results, this will be a vector of failing commands and their associated result code. |
Definition at line 170 of file Compilation.cpp.
References ExecuteCommand().
Referenced by clang::driver::Driver::ExecuteCompilation(), and clang::driver::Driver::generateCompilationDiagnostics().
|
inline |
Definition at line 149 of file Compilation.h.
Referenced by clang::driver::Driver::BuildCompilation(), clang::driver::Driver::BuildJobs(), clang::driver::Driver::BuildUniversalActions(), clang::driver::tools::SHAVE::Compiler::ConstructJob(), clang::driver::Driver::generateCompilationDiagnostics(), clang::driver::Driver::PrintActions(), and UseRelaxAll().
|
inline |
Definition at line 150 of file Compilation.h.
|
inline |
Definition at line 145 of file Compilation.h.
Referenced by addPGOAndCoverageFlags(), clang::driver::Driver::BuildCompilation(), clang::driver::Driver::BuildJobs(), clang::driver::Driver::BuildUniversalActions(), ExecuteCommand(), clang::driver::Driver::ExecuteCompilation(), clang::driver::Driver::generateCompilationDiagnostics(), clang::driver::Driver::GetClPchPath(), clang::driver::Driver::GetNamedOutputPath(), clang::driver::Driver::HandleImmediateArgs(), clang::driver::Driver::PrintVersion(), and selectToolForJob().
|
inline |
Definition at line 147 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).
BoundArch | - The bound architecture name, or 0. |
Definition at line 55 of file Compilation.cpp.
References clang::driver::ToolChain::TranslateArgs().
|
inline |
Definition at line 100 of file Compilation.h.
Referenced by clang::driver::Driver::BuildCompilation(), clang::driver::Driver::BuildJobs(), CollectArgsForIntegratedAssembler(), clang::driver::Driver::generateCompilationDiagnostics(), clang::driver::Driver::HandleImmediateArgs(), and clang::driver::Driver::PrintVersion().
|
inline |
Definition at line 98 of file Compilation.h.
Referenced by buildCudaActions(), CleanupFile(), clang::driver::tools::Clang::ConstructJob(), clang::driver::tools::visualstudio::Linker::ConstructJob(), clang::driver::tools::Myriad::Linker::ConstructJob(), ExecuteCommand(), and getSysRoot().
|
inline |
Definition at line 170 of file Compilation.h.
Referenced by clang::driver::Driver::ExecuteCompilation().
|
inline |
Definition at line 143 of file Compilation.h.
Referenced by clang::driver::Driver::CreateOffloadingDeviceToolChains(), and clang::driver::Driver::generateCompilationDiagnostics().
|
inline |
Definition at line 161 of file Compilation.h.
Referenced by clang::driver::Driver::ExecuteCompilation(), clang::driver::Driver::generateCompilationDiagnostics(), and clang::tooling::getCC1Arguments().
|
inline |
Definition at line 162 of file Compilation.h.
|
inline |
Definition at line 115 of file Compilation.h.
|
inline |
Definition at line 168 of file Compilation.h.
Referenced by clang::driver::Driver::ExecuteCompilation().
|
inline |
Return an offload toolchain of the provided kind.
Only one is expected to exist.
Definition at line 122 of file Compilation.h.
Referenced by addExtraOffloadCXXStdlibIncludeArgs(), addExtraOffloadSpecificIncludeArgs(), buildCudaActions(), clang::driver::tools::Clang::ConstructJob(), and clang::driver::Driver::CreateOffloadingDeviceToolChains().
StringRef Compilation::getSysRoot | ( | ) | const |
Returns the sysroot path.
Definition at line 214 of file Compilation.cpp.
References getDriver(), and clang::driver::Driver::SysRoot.
Referenced by clang::driver::Driver::HandleImmediateArgs().
|
inline |
Definition at line 166 of file Compilation.h.
Referenced by clang::driver::Driver::ExecuteCompilation(), and clang::driver::Driver::generateCompilationDiagnostics().
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 184 of file Compilation.cpp.
References clang::driver::JobList::clear().
Referenced by clang::driver::Driver::generateCompilationDiagnostics().
|
inline |
Return true if we're compiling for diagnostics.
Definition at line 249 of file Compilation.h.
Referenced by clang::driver::tools::Clang::ConstructJob().
|
inline |
Definition at line 102 of file Compilation.h.
|
inline |
Creates a new Action owned by this Compilation.
The new Action is not added to the list returned by getActions().
Definition at line 155 of file Compilation.h.
Referenced by clang::driver::Driver::BuildActions(), buildCudaActions(), clang::driver::Driver::BuildUniversalActions(), and clang::driver::Driver::ConstructPhaseAction().
void Compilation::Redirect | ( | const StringRef ** | Redirects | ) |
Redirect - Redirect output of this compilation.
Can only be done once.
Redirects | - array of pointers to paths. The array should have a size of three. The inferior process's stdin(0), stdout(1), and stderr(2) will be redirected to the corresponding paths. This compilation instance becomes the owner of Redirects and will delete the array and StringRef's. |
Definition at line 218 of file Compilation.cpp.