Legion Runtime
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | List of all members
Legion::OrderingConstraint Class Reference

#include <constraints.h>

Inheritance diagram for Legion::OrderingConstraint:
Legion::LayoutConstraint

Public Member Functions

 OrderingConstraint (bool contiguous=false)
 
 OrderingConstraint (const std::vector< DimensionKind > &ordering, bool contiguous)
 
bool operator== (const OrderingConstraint &other) const
 
bool operator!= (const OrderingConstraint &other) const
 
virtual LayoutConstraintKind get_constraint_kind (void) const override
 
virtual OrderingConstraint * as_ordering_constraint (void) override
 
virtual const OrderingConstraint * as_ordering_constraint (void) const override
 
bool entails (const OrderingConstraint &other, unsigned total_dims) const
 
bool conflicts (const OrderingConstraint &other, unsigned total_dims) const
 
void swap (OrderingConstraint &rhs)
 
void serialize (Serializer &rez) const
 
void deserialize (Deserializer &derez)
 
- Public Member Functions inherited from Legion::LayoutConstraint
virtual SpecializedConstraint * as_specialized_constraint (void)
 
virtual MemoryConstraint * as_memory_constraint (void)
 
virtual FieldConstraint * as_field_constraint (void)
 
virtual TilingConstraint * as_tiling_constraint (void)
 
virtual DimensionConstraint * as_dimension_constraint (void)
 
virtual AlignmentConstraint * as_alignment_constraint (void)
 
virtual OffsetConstraint * as_offset_constraint (void)
 
virtual PointerConstraint * as_pointer_constraint (void)
 
virtual PaddingConstraint * as_padding_constraint (void)
 
virtual const SpecializedConstraint * as_specialized_constraint (void) const
 
virtual const MemoryConstraint * as_memory_constraint (void) const
 
virtual const FieldConstraint * as_field_constraint (void) const
 
virtual const TilingConstraint * as_tiling_constraint (void) const
 
virtual const DimensionConstraint * as_dimension_constraint (void) const
 
virtual const AlignmentConstraint * as_alignment_constraint (void) const
 
virtual const OffsetConstraint * as_offset_constraint (void) const
 
virtual const PointerConstraint * as_pointer_constraint (void) const
 
virtual const PaddingConstraint * as_padding_constraint (void) const
 

Static Public Member Functions

static bool is_skip_dimension (DimensionKind dim, unsigned total_dims)
 

Public Attributes

std::vector< DimensionKind > ordering
 
bool contiguous
 

Static Public Attributes

static const LayoutConstraintKind constraint_kind
 

Detailed Description

An ordering constraint specifies an ordering on index space dimensions as well as the special 'field' dimension. The earliest dimensions are assumed to be the most-rapidly changing in memory, therefore:

Array-of-structs (AOS): DIM_F is listed first Struct-of-arrays (SOA): DIM_F is listed last

Again users can specify multiple of these constraints to describe a partial order, but the common case will almost certainly be to specify a total order. Users can also specify whether or not the related constraints are contiguous with each other.

Member Function Documentation

◆ as_ordering_constraint() [1/2]

virtual const OrderingConstraint * Legion::OrderingConstraint::as_ordering_constraint ( void  ) const
inlineoverridevirtual

Reimplemented from Legion::LayoutConstraint.

◆ as_ordering_constraint() [2/2]

virtual OrderingConstraint * Legion::OrderingConstraint::as_ordering_constraint ( void  )
inlineoverridevirtual

Reimplemented from Legion::LayoutConstraint.

◆ get_constraint_kind()

virtual LayoutConstraintKind Legion::OrderingConstraint::get_constraint_kind ( void  ) const
inlineoverridevirtual

Member Data Documentation

◆ constraint_kind

const LayoutConstraintKind Legion::OrderingConstraint::constraint_kind
static
Initial value:
=
LEGION_ORDERING_CONSTRAINT

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