Legion Runtime
Public Member Functions | Public Attributes | List of all members
Legion::CopyLauncher Struct Reference

#include <legion.h>

Public Member Functions

 CopyLauncher (Predicate pred=Predicate::TRUE_PRED, MapperID id=0, MappingTagID tag=0, UntypedBuffer map_arg=UntypedBuffer(), const char *provenance="")
 
unsigned add_copy_requirements (const RegionRequirement &src, const RegionRequirement &dst)
 
void add_src_field (unsigned idx, FieldID fid, bool inst=true)
 
void add_dst_field (unsigned idx, FieldID fid, bool inst=true)
 
void add_src_indirect_field (FieldID src_idx_fid, const RegionRequirement &src_idx_req, bool is_range_indirection=false, bool inst=true)
 
void add_dst_indirect_field (FieldID dst_idx_fid, const RegionRequirement &dst_idx_req, bool is_range_indirection=false, bool inst=true)
 
RegionRequirementadd_src_indirect_field (const RegionRequirement &src_idx_req, bool is_range_indirection=false)
 
RegionRequirementadd_dst_indirect_field (const RegionRequirement &dst_idx_req, bool is_range_indirection=false)
 
void add_grant (Grant g)
 
void add_wait_barrier (PhaseBarrier bar)
 
void add_arrival_barrier (PhaseBarrier bar)
 
void add_wait_handshake (LegionHandshake handshake)
 
void add_arrival_handshake (LegionHandshake handshake)
 

Public Attributes

std::vector< RegionRequirementsrc_requirements
 
std::vector< RegionRequirementdst_requirements
 
std::vector< RegionRequirementsrc_indirect_requirements
 
std::vector< RegionRequirementdst_indirect_requirements
 
std::vector< bool > src_indirect_is_range
 
std::vector< bool > dst_indirect_is_range
 
std::vector< Grantgrants
 
std::vector< PhaseBarrierwait_barriers
 
std::vector< PhaseBarrierarrive_barriers
 
Predicate predicate
 
MapperID map_id
 
MappingTagID tag
 
UntypedBuffer map_arg
 
DomainPoint point
 
IndexSpace sharding_space
 
std::string provenance
 
const std::vector< StaticDependence > * static_dependences
 
bool possible_src_indirect_out_of_range
 
bool possible_dst_indirect_out_of_range
 
bool possible_dst_indirect_aliasing
 
bool silence_warnings
 

Detailed Description

Copy launchers are objects that can be used to issue copies between two regions including regions that are not of the same region tree. Copy operations specify an arbitrary number of pairs of source and destination region requirements. The source region requirements must be READ_ONLY, while the destination requirements must be either READ_WRITE, WRITE_ONLY, or REDUCE with a reduction function. While the regions in a source and a destination pair do not have to be in the same region tree, one of the following two conditions must hold:

  1. The two regions share an index space tree and the source region's index space is an ancestor of the destination region's index space.
  2. The source and destination index spaces must be of the same kind (either dimensions match or number of elements match in the element mask) and the source region's index space must dominate the destination region's index space. If either of these two conditions does not hold then the runtime will issue an error.
    See also
    Runtime

The documentation for this struct was generated from the following file: