|
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().