clang: clang::driver::Action Class Reference (original ) (raw )Action - Represent an abstract compilation step to perform. More...
#include "[clang/Driver/Action.h](Action%5F8h%5Fsource.html)"
Public Types
enum
ActionClass { InputClass = 0 , BindArchClass , OffloadClass , PreprocessJobClass , PrecompileJobClass , ExtractAPIJobClass , AnalyzeJobClass , MigrateJobClass , CompileJobClass , BackendJobClass , AssembleJobClass , LinkJobClass , IfsMergeJobClass , LipoJobClass , DsymutilJobClass , VerifyDebugInfoJobClass , VerifyPCHJobClass , OffloadBundlingJobClass , OffloadUnbundlingJobClass , OffloadPackagerJobClass , LinkerWrapperJobClass , StaticLibJobClass , BinaryAnalyzeJobClass , JobClassFirst = PreprocessJobClass , JobClassLast = BinaryAnalyzeJobClass }
enum
OffloadKind { OFK_None = 0x00 , OFK_Host = 0x01 , OFK_Cuda = 0x02 , OFK_OpenMP = 0x04 , OFK_HIP = 0x08 , OFK_SYCL = 0x10 }
using
size_type = ActionList::size_type
using
input_iterator = ActionList::iterator
using
input_const_iterator = ActionList::const_iterator
using
input_range = llvm::iterator_range< input_iterator >
using
input_const_range = llvm::iterator_range< input_const_iterator >
Protected Member Functions
Action - Represent an abstract compilation step to perform.
An action represents an edge in the compilation graph; typically it is a job to transform an input using some tool.
The current driver is hard wired to expect actions which produce a single primary output, at least in terms of controlling the compilation. Actions can produce auxiliary files, but can only produce a single output to feed into subsequent actions.
Actions are usually owned by a Compilation , which creates new actions via MakeAction().
Definition at line 47 of file Action.h .
◆ size_type◆ ActionClass
Enumerator
InputClass
BindArchClass
OffloadClass
PreprocessJobClass
PrecompileJobClass
ExtractAPIJobClass
AnalyzeJobClass
MigrateJobClass
CompileJobClass
BackendJobClass
AssembleJobClass
LinkJobClass
IfsMergeJobClass
LipoJobClass
DsymutilJobClass
VerifyDebugInfoJobClass
VerifyPCHJobClass
OffloadBundlingJobClass
OffloadUnbundlingJobClass
OffloadPackagerJobClass
LinkerWrapperJobClass
StaticLibJobClass
BinaryAnalyzeJobClass
JobClassFirst
JobClassLast
Definition at line 55 of file Action.h .
◆ OffloadKind
Enumerator
OFK_None
OFK_Host
OFK_Cuda
OFK_OpenMP
OFK_HIP
OFK_SYCL
Definition at line 87 of file Action.h .
◆ Action() [1/4]◆ Action() [2/4]◆ Action() [3/4]◆ Action() [4/4]
Action::~Action ( )
virtualdefault
◆ getClassName() [1/2]
const char * clang::driver::Action::getClassName ( ) const
inline
◆ getClassName() [2/2]
const char * Action::getClassName ( ActionClass AC )
static
Definition at line 20 of file Action.cpp .
References AnalyzeJobClass , AssembleJobClass , BackendJobClass , BinaryAnalyzeJobClass , BindArchClass , CompileJobClass , DsymutilJobClass , ExtractAPIJobClass , IfsMergeJobClass , InputClass , LinkerWrapperJobClass , LinkJobClass , LipoJobClass , MigrateJobClass , OffloadBundlingJobClass , OffloadClass , OffloadPackagerJobClass , OffloadUnbundlingJobClass , PrecompileJobClass , PreprocessJobClass , StaticLibJobClass , VerifyDebugInfoJobClass , and VerifyPCHJobClass .
ActionList & clang::driver::Action::getInputs ( )
inline
Definition at line 151 of file Action.h .
Referenced by clang::driver::ExtractAPIJobAction::addHeaderInput() , clang::driver::Driver::BuildJobs() , clang::driver::Driver::BuildOffloadingActions() , clang::driver::tools::Clang::ConstructJob() , clang::driver::tools::OffloadBundler::ConstructJob() , clang::driver::tools::darwin::Assembler::ConstructJob() , clang::driver::OffloadAction::doOnEachDeviceDependence() , clang::driver::OffloadAction::doOnHostDependence() , clang::driver::OffloadAction::getHostDependence() , clang::driver::OffloadAction::getSingleDeviceDependence() , HasPreprocessOutput() , clang::driver::OffloadAction::hasSingleDeviceDependence() , and clang::driver::OffloadAction::OffloadAction() .
const ActionList & clang::driver::Action::getInputs ( ) const
inline
◆ getKind()
ActionClass clang::driver::Action::getKind ( ) const
inline
Definition at line 148 of file Action.h .
Referenced by clang::driver::Driver::BuildInputs() , clang::driver::Driver::BuildJobs() , clang::driver::InputAction::classof() , clang::driver::BindArchAction::classof() , clang::driver::OffloadAction::classof() , clang::driver::JobAction::classof() , clang::driver::PreprocessJobAction::classof() , clang::driver::PrecompileJobAction::classof() , clang::driver::ExtractAPIJobAction::classof() , clang::driver::AnalyzeJobAction::classof() , clang::driver::MigrateJobAction::classof() , clang::driver::CompileJobAction::classof() , clang::driver::BackendJobAction::classof() , clang::driver::AssembleJobAction::classof() , clang::driver::IfsMergeJobAction::classof() , clang::driver::LinkJobAction::classof() , clang::driver::LipoJobAction::classof() , clang::driver::DsymutilJobAction::classof() , clang::driver::VerifyJobAction::classof() , clang::driver::VerifyDebugInfoJobAction::classof() , clang::driver::VerifyPCHJobAction::classof() , clang::driver::OffloadBundlingJobAction::classof() , clang::driver::OffloadUnbundlingJobAction::classof() , clang::driver::OffloadPackagerJobAction::classof() , clang::driver::LinkerWrapperJobAction::classof() , clang::driver::StaticLibJobAction::classof() , clang::driver::BinaryAnalyzeJobAction::classof() , clang::driver::tools::Clang::ConstructJob() , clang::driver::tools::darwin::Assembler::ConstructJob() , getClassName() , clang::driver::ToolChain::SelectTool() , and clang::driver::toolchains::SPIRVToolChain::SelectTool() .
◆ getOffloadingArch()
const char * clang::driver::Action::getOffloadingArch ( ) const
inline
◆ getOffloadingDeviceKind()
OffloadKind clang::driver::Action::getOffloadingDeviceKind ( ) const
inline
◆ GetOffloadingFileNamePrefix()
std::string Action::GetOffloadingFileNamePrefix ( OffloadKind Kind , StringRef NormalizedTriple , bool CreatePrefixForHost = false )
static
◆ getOffloadingHostActiveKinds()
unsigned clang::driver::Action::getOffloadingHostActiveKinds ( ) const
inline
◆ getOffloadingKindPrefix()
std::string Action::getOffloadingKindPrefix
(
)
const
const ToolChain * clang::driver::Action::getOffloadingToolChain ( ) const
inline
◆ GetOffloadKindName()
StringRef Action::GetOffloadKindName ( OffloadKind Kind )
static
Return a string containing a offload kind name.
Return a string with the offload kind name.
If that is not defined, we assume 'host'.
Definition at line 160 of file Action.cpp .
References OFK_Cuda , OFK_HIP , OFK_Host , OFK_None , OFK_OpenMP , and OFK_SYCL .
Referenced by clang::driver::tools::OffloadBundler::ConstructJob() , clang::driver::tools::OffloadPackager::ConstructJob() , clang::driver::tools::OffloadBundler::ConstructJobMultipleOutputs() , GetOffloadingFileNamePrefix() , GetSDLFromOffloadArchive() , and GetTriplePlusArchString() .
◆ getType()
types::ID clang::driver::Action::getType ( ) const
inline
Definition at line 149 of file Action.h .
Referenced by clang::driver::Driver::BuildJobs() , clang::driver::Driver::BuildOffloadingActions() , clang::driver::tools::Clang::ConstructJob() , clang::driver::tools::ClangAs::ConstructJob() , clang::driver::tools::darwin::Assembler::ConstructJob() , clang::driver::tools::Flang::ConstructJob() , clang::driver::tools::AMDGCN::Linker::ConstructJob() , clang::driver::tools::HIPSPV::Linker::ConstructJob() , clang::driver::Driver::ConstructPhaseAction() , GetModuleOutputPath() , clang::driver::Driver::GetNamedOutputPath() , and clang::driver::tools::gcc::Compiler::RenderExtraToolArgs() .
◆ isCollapsingWithNextDependentActionLegal()
bool clang::driver::Action::isCollapsingWithNextDependentActionLegal ( ) const
inline
Return true if this function can be collapsed with others.
Definition at line 171 of file Action.h .
◆ isDeviceOffloading()
bool clang::driver::Action::isDeviceOffloading ( OffloadKind OKind ) const
inline
◆ isHostOffloading()
bool clang::driver::Action::isHostOffloading ( unsigned int OKind ) const
inline
◆ isOffloading()◆ propagateDeviceOffloadInfo()
void Action::propagateDeviceOffloadInfo
(
OffloadKind
OKind ,
const char *
OArch ,
const ToolChain *
OToolChain
)
◆ propagateHostOffloadInfo()
void Action::propagateHostOffloadInfo
(
unsigned
OKinds ,
const char *
OArch
)
◆ propagateOffloadInfo()
void Action::propagateOffloadInfo
(
const Action *
A
)
◆ setCannotBeCollapsedWithNextDependentAction()
void clang::driver::Action::setCannotBeCollapsedWithNextDependentAction ( )
inline
◆ setHostOffloadInfo()
void clang::driver::Action::setHostOffloadInfo ( unsigned OKinds , const char * OArch )
inline
◆ size()
size_type clang::driver::Action::size ( ) const
inline
◆ ActiveOffloadKindMask
unsigned clang::driver::Action::ActiveOffloadKindMask = 0u
protected
◆ OffloadingArch
const char* clang::driver::Action::OffloadingArch = nullptr
protected
◆ OffloadingDeviceKind
const ToolChain * clang::driver::Action::OffloadingToolChain = nullptr
protected
The documentation for this class was generated from the following files: