clang 22.0.0git
|
An offload action combines host or/and device actions according to the programming model implementation needs and propagates the offloading kind to its dependences. More...
#include "clang/Driver/Action.h"
Classes | |
class | DeviceDependences |
Type used to communicate device actions. More... | |
class | HostDependence |
Type used to communicate host actions. More... |
Public Member Functions | |
OffloadAction (const HostDependence &HDep) | |
OffloadAction (const DeviceDependences &DDeps, types::ID Ty) | |
OffloadAction (const HostDependence &HDep, const DeviceDependences &DDeps) | |
void | doOnHostDependence (const OffloadActionWorkTy &Work) const |
Execute the work specified in Work on the host dependence. | |
void | doOnEachDeviceDependence (const OffloadActionWorkTy &Work) const |
Execute the work specified in Work on each device dependence. | |
void | doOnEachDependence (const OffloadActionWorkTy &Work) const |
Execute the work specified in Work on each dependence. | |
void | doOnEachDependence (bool IsHostDependence, const OffloadActionWorkTy &Work) const |
Execute the work specified in Work on each host or device dependence if IsHostDependenceto is true or false, respectively. | |
bool | hasHostDependence () const |
Return true if the action has a host dependence. | |
Action * | getHostDependence () const |
Return the host dependence of this action. | |
bool | hasSingleDeviceDependence (bool DoNotConsiderHostActions=false) const |
Return true if the action has a single device dependence. | |
Action * | getSingleDeviceDependence (bool DoNotConsiderHostActions=false) const |
Return the single device dependence of this action. | |
Public Member Functions inherited from clang::driver::Action | |
virtual | ~Action () |
const char * | getClassName () const |
ActionClass | getKind () const |
types::ID | getType () const |
ActionList & | getInputs () |
const ActionList & | getInputs () const |
size_type | size () const |
input_iterator | input_begin () |
input_iterator | input_end () |
input_range | inputs () |
input_const_iterator | input_begin () const |
input_const_iterator | input_end () const |
input_const_range | inputs () const |
void | setCannotBeCollapsedWithNextDependentAction () |
Mark this action as not legal to collapse. | |
bool | isCollapsingWithNextDependentActionLegal () const |
Return true if this function can be collapsed with others. | |
std::string | getOffloadingKindPrefix () const |
Return a string containing the offload kind of the action. | |
void | propagateDeviceOffloadInfo (OffloadKind OKind, const char *OArch, const ToolChain *OToolChain) |
Set the device offload info of this action and propagate it to its dependences. | |
void | propagateHostOffloadInfo (unsigned OKinds, const char *OArch) |
Append the host offload info of this action and propagate it to its dependences. | |
void | setHostOffloadInfo (unsigned OKinds, const char *OArch) |
void | propagateOffloadInfo (const Action *A) |
Set the offload info of this action to be the same as the provided action, and propagate it to its dependences. | |
unsigned | getOffloadingHostActiveKinds () const |
OffloadKind | getOffloadingDeviceKind () const |
const char * | getOffloadingArch () const |
const ToolChain * | getOffloadingToolChain () const |
bool | isHostOffloading (unsigned int OKind) const |
Check if this action have any offload kinds. | |
bool | isDeviceOffloading (OffloadKind OKind) const |
bool | isOffloading (OffloadKind OKind) const |
Static Public Member Functions | |
static bool | classof (const Action *A) |
Static Public Member Functions inherited from clang::driver::Action | |
static const char * | getClassName (ActionClass AC) |
static std::string | GetOffloadingFileNamePrefix (OffloadKind Kind, StringRef NormalizedTriple, bool CreatePrefixForHost=false) |
Return a string that can be used as prefix in order to generate unique files for each offloading kind. | |
static StringRef | GetOffloadKindName (OffloadKind Kind) |
Return a string containing a offload kind name. |
Additional Inherited Members | |
Protected Member Functions inherited from clang::driver::Action | |
Action (ActionClass Kind, types::ID Type) | |
Action (ActionClass Kind, Action *Input, types::ID Type) | |
Action (ActionClass Kind, Action *Input) | |
Action (ActionClass Kind, const ActionList &Inputs, types::ID Type) | |
Protected Attributes inherited from clang::driver::Action | |
unsigned | ActiveOffloadKindMask = 0u |
Offload information. | |
OffloadKind | OffloadingDeviceKind = OFK_None |
Offloading kind of the device. | |
const char * | OffloadingArch = nullptr |
The Offloading architecture associated with this action. | |
const ToolChain * | OffloadingToolChain = nullptr |
The Offloading toolchain associated with this device action. |
An offload action combines host or/and device actions according to the programming model implementation needs and propagates the offloading kind to its dependences.
OffloadAction::OffloadAction | ( | const HostDependence & | HDep | ) |
Definition at line 196 of file Action.cpp.
References clang::driver::Action::Action(), clang::driver::Action::ActiveOffloadKindMask, clang::driver::OffloadAction::HostDependence::getAction(), clang::driver::OffloadAction::HostDependence::getBoundArch(), clang::driver::OffloadAction::HostDependence::getOffloadKinds(), clang::driver::Action::OffloadClass, clang::driver::Action::OffloadingArch, and clang::driver::Action::propagateHostOffloadInfo().
OffloadAction::OffloadAction | ( | const DeviceDependences & | DDeps, |
types::ID | Ty ) |
Definition at line 204 of file Action.cpp.
References clang::driver::Action::Action(), clang::for(), clang::driver::OffloadAction::DeviceDependences::getBoundArchs(), clang::driver::Action::getInputs(), clang::driver::OffloadAction::DeviceDependences::getOffloadKinds(), clang::driver::OffloadAction::DeviceDependences::getToolChains(), clang::if(), clang::driver::Action::OffloadClass, clang::driver::Action::OffloadingArch, clang::driver::Action::OffloadingDeviceKind, and clang::driver::Action::size().
OffloadAction::OffloadAction | ( | const HostDependence & | HDep, |
const DeviceDependences & | DDeps ) |
Definition at line 224 of file Action.cpp.
References clang::driver::Action::Action(), clang::driver::Action::ActiveOffloadKindMask, clang::for(), clang::driver::OffloadAction::HostDependence::getAction(), clang::driver::OffloadAction::DeviceDependences::getActions(), clang::driver::OffloadAction::HostDependence::getBoundArch(), clang::driver::OffloadAction::HostDependence::getOffloadKinds(), clang::driver::Action::OffloadClass, clang::driver::Action::OffloadingArch, and clang::driver::Action::propagateHostOffloadInfo().
Definition at line 398 of file Action.h.
References clang::driver::Action::Action(), clang::driver::Action::getKind(), and clang::driver::Action::OffloadClass.
void OffloadAction::doOnEachDependence | ( | bool | IsHostDependence, |
const OffloadActionWorkTy & | Work ) const |
Execute the work specified in Work on each host or device dependence if IsHostDependenceto is true or false, respectively.
Definition at line 284 of file Action.cpp.
References doOnEachDeviceDependence(), and doOnHostDependence().
void OffloadAction::doOnEachDependence | ( | const OffloadActionWorkTy & | Work | ) | const |
Execute the work specified in Work on each dependence.
Definition at line 279 of file Action.cpp.
References doOnEachDeviceDependence(), and doOnHostDependence().
void OffloadAction::doOnEachDeviceDependence | ( | const OffloadActionWorkTy & | Work | ) | const |
Execute the work specified in Work on each device dependence.
Definition at line 257 of file Action.cpp.
References clang::driver::Action::getInputs(), and clang::driver::Action::size().
Referenced by doOnEachDependence(), and doOnEachDependence().
void OffloadAction::doOnHostDependence | ( | const OffloadActionWorkTy & | Work | ) | const |
Execute the work specified in Work on the host dependence.
Definition at line 249 of file Action.cpp.
References clang::driver::Action::getInputs().
Referenced by doOnEachDependence(), and doOnEachDependence().
Action * OffloadAction::getHostDependence | ( | ) | const |
Return the host dependence of this action.
This function is only expected to be called if the host dependence exists.
Definition at line 294 of file Action.cpp.
References clang::driver::Action::Action(), clang::driver::Action::getInputs(), and hasHostDependence().
Return the single device dependence of this action.
This function is only expected to be called if a single device dependence exists. If DoNotConsiderHostActions is set, a host dependence is allowed.
Definition at line 308 of file Action.cpp.
References clang::driver::Action::getInputs(), and hasSingleDeviceDependence().
bool OffloadAction::hasHostDependence | ( | ) | const |
Return true if the action has a host dependence.
Definition at line 292 of file Action.cpp.
Referenced by getHostDependence().
Return true if the action has a single device dependence.
If DoNotConsiderHostActions is set, ignore the host dependence, if any, while accounting for the number of dependences.
Definition at line 300 of file Action.cpp.
References clang::driver::Action::getInputs().
Referenced by getSingleDeviceDependence().