class OffloadAction

Declaration

class OffloadAction : public Action { /* full declaration omitted */ };

Description

An offload action combines host or/and device actions according to the programming model implementation needs and propagates the offloading kind to its dependences.

Declared at: clang/include/clang/Driver/Action.h:269

Inherits from: Action

Member Variables

private const clang::driver::ToolChain* HostTC = nullptr
The host offloading toolchain that should be used with the action.
private DeviceDependences::ToolChainList DevToolChains
The tool chains associated with the list of actions.

Inherited from Action:

protected ActiveOffloadKindMask = 0U
protected OffloadingDeviceKind = OFK_None
protected OffloadingArch = nullptr
protected OffloadingToolChain = nullptr

Method Overview

  • public OffloadAction(const clang::driver::OffloadAction::HostDependence & HDep)
  • public OffloadAction(const clang::driver::OffloadAction::DeviceDependences & DDeps, types::ID Ty)
  • public OffloadAction(const clang::driver::OffloadAction::HostDependence & HDep, const clang::driver::OffloadAction::DeviceDependences & DDeps)
  • private virtual void anchor()
  • public static bool classof(const clang::driver::Action * A)
  • public void doOnEachDependence(const clang::driver::OffloadAction::OffloadActionWorkTy & Work) const
  • public void doOnEachDependence(bool IsHostDependence, const clang::driver::OffloadAction::OffloadActionWorkTy & Work) const
  • public void doOnEachDeviceDependence(const clang::driver::OffloadAction::OffloadActionWorkTy & Work) const
  • public void doOnHostDependence(const clang::driver::OffloadAction::OffloadActionWorkTy & Work) const
  • public clang::driver::Action * getHostDependence() const
  • public clang::driver::Action * getSingleDeviceDependence(bool DoNotConsiderHostActions = false) const
  • public bool hasHostDependence() const
  • public bool hasSingleDeviceDependence(bool DoNotConsiderHostActions = false) const

Inherited from Action:

Methods

OffloadAction(const clang::driver::OffloadAction::
                  HostDependence& HDep)

Declared at: clang/include/clang/Driver/Action.h:356

Parameters

const clang::driver::OffloadAction:: HostDependence& HDep

OffloadAction(const clang::driver::OffloadAction::
                  DeviceDependences& DDeps,
              types::ID Ty)

Declared at: clang/include/clang/Driver/Action.h:357

Parameters

const clang::driver::OffloadAction:: DeviceDependences& DDeps
types::ID Ty

OffloadAction(const clang::driver::OffloadAction::
                  HostDependence& HDep,
              const clang::driver::OffloadAction::
                  DeviceDependences& DDeps)

Declared at: clang/include/clang/Driver/Action.h:358

Parameters

const clang::driver::OffloadAction:: HostDependence& HDep
const clang::driver::OffloadAction:: DeviceDependences& DDeps

virtual void anchor()

Declared at: clang/include/clang/Driver/Action.h:270

static bool classof(
    const clang::driver::Action* A)

Declared at: clang/include/clang/Driver/Action.h:392

Parameters

const clang::driver::Action* A

void doOnEachDependence(
    const clang::driver::OffloadAction::
        OffloadActionWorkTy& Work) const

Description

Execute the work specified in \a Work on each dependence.

Declared at: clang/include/clang/Driver/Action.h:367

Parameters

const clang::driver::OffloadAction:: OffloadActionWorkTy& Work

void doOnEachDependence(
    bool IsHostDependence,
    const clang::driver::OffloadAction::
        OffloadActionWorkTy& Work) const

Description

Execute the work specified in \a Work on each host or device dependence if\a IsHostDependenceto is true or false, respectively.

Declared at: clang/include/clang/Driver/Action.h:371

Parameters

bool IsHostDependence
const clang::driver::OffloadAction:: OffloadActionWorkTy& Work

void doOnEachDeviceDependence(
    const clang::driver::OffloadAction::
        OffloadActionWorkTy& Work) const

Description

Execute the work specified in \a Work on each device dependence.

Declared at: clang/include/clang/Driver/Action.h:364

Parameters

const clang::driver::OffloadAction:: OffloadActionWorkTy& Work

void doOnHostDependence(
    const clang::driver::OffloadAction::
        OffloadActionWorkTy& Work) const

Description

Execute the work specified in \a Work on the host dependence.

Declared at: clang/include/clang/Driver/Action.h:361

Parameters

const clang::driver::OffloadAction:: OffloadActionWorkTy& Work

clang::driver::Action* getHostDependence() const

Description

Return the host dependence of this action. This function is only expected to be called if the host dependence exists.

Declared at: clang/include/clang/Driver/Action.h:379

clang::driver::Action* getSingleDeviceDependence(
    bool DoNotConsiderHostActions = false) const

Description

Return the single device dependence of this action. This function is only expected to be called if a single device dependence exists. If \a DoNotConsiderHostActions is set, a host dependence is allowed.

Declared at: clang/include/clang/Driver/Action.h:390

Parameters

bool DoNotConsiderHostActions = false

bool hasHostDependence() const

Description

Return true if the action has a host dependence.

Declared at: clang/include/clang/Driver/Action.h:375

bool hasSingleDeviceDependence(
    bool DoNotConsiderHostActions = false) const

Description

Return true if the action has a single device dependence. If \a DoNotConsiderHostActions is set, ignore the host dependence, if any, while accounting for the number of dependences.

Declared at: clang/include/clang/Driver/Action.h:384

Parameters

bool DoNotConsiderHostActions = false