Legion Runtime
Loading...
Searching...
No Matches
types.h File Reference
#include <cassert>
#include <limits>
#include <optional>
#include <functional>
#include "realm.h"
#include "realm/id.h"
#include "realm/dynamic_templates.h"
#include "legion/api/config.h"

Go to the source code of this file.

Classes

class  Legion::Unserializable
 
struct  Legion::Internal::NT_TemplateHelper
 
struct  Legion::Internal::NT_TemplateHelper::DimHelper
 
class  Legion::Internal::LgEvent
 
class  Legion::Internal::PredEvent
 
class  Legion::Internal::PredUserEvent
 
class  Legion::Internal::ApEvent
 
class  Legion::Internal::ApUserEvent
 
class  Legion::Internal::ApBarrier
 
class  Legion::Internal::RtEvent
 
class  Legion::Internal::RtUserEvent
 
class  Legion::Internal::RtBarrier
 
class  Legion::Internal::LocalLock
 
class  Legion::Internal::AutoLock
 
class  Legion::Internal::AutoTryLock
 

Namespaces

namespace  Legion
 
namespace  Legion::Mapping
 

Macros

#define LEGION_DISABLE_DEPRECATED_WARNINGS
 
#define LEGION_REENABLE_DEPRECATED_WARNINGS
 
#define legion_assert(expr)   ((void)0)
 
#define legion_no_skip_assert(expr)   ((void)(expr))
 
#define FRIEND_ALL_RUNTIME_CLASSES
 

Typedefs

typedef ::realm_id_t Legion::IDType
 
typedef ::legion_privilege_mode_t Legion::PrivilegeMode
 
typedef ::legion_allocate_mode_t Legion::AllocateMode
 
typedef ::legion_coherence_property_t Legion::CoherenceProperty
 
typedef ::legion_region_flags_t Legion::RegionFlags
 
typedef ::legion_projection_type_t Legion::ProjectionType
 
typedef ::legion_partition_kind_t Legion::PartitionKind
 
typedef ::legion_external_resource_t Legion::ExternalResource
 
typedef ::legion_timing_measurement_t Legion::TimingMeasurement
 
typedef ::legion_dependence_type_t Legion::DependenceType
 
typedef ::legion_mappable_type_id_t Legion::MappableType
 
typedef ::legion_file_mode_t Legion::LegionFileMode
 
typedef ::legion_execution_constraint_t Legion::ExecutionConstraintKind
 
typedef ::legion_layout_constraint_t Legion::LayoutConstraintKind
 
typedef ::legion_equality_kind_t Legion::EqualityKind
 
typedef ::legion_dimension_kind_t Legion::DimensionKind
 
typedef ::legion_isa_kind_t Legion::ISAKind
 
typedef ::legion_resource_constraint_t Legion::ResourceKind
 
typedef ::legion_launch_constraint_t Legion::LaunchKind
 
typedef ::legion_specialized_constraint_t Legion::SpecializedKind
 
typedef ::legion_unbounded_pool_scope_t Legion::UnboundPoolScope
 
typedef ::legion_projection_type_t Legion::HandleType
 
typedef ::legion_address_space_t Legion::AddressSpace
 
typedef ::legion_task_priority_t Legion::TaskPriority
 
typedef ::legion_task_priority_t Legion::RealmPriority
 
typedef ::legion_garbage_collection_priority_t Legion::GCPriority
 
typedef ::legion_color_t Legion::Color
 
typedef ::legion_field_id_t Legion::FieldID
 
typedef ::legion_trace_id_t Legion::TraceID
 
typedef ::legion_mapper_id_t Legion::MapperID
 
typedef ::legion_context_id_t Legion::ContextID
 
typedef ::legion_instance_id_t Legion::InstanceID
 
typedef ::legion_index_tree_id_t Legion::IndexTreeID
 
typedef ::legion_generation_id_t Legion::GenerationID
 
typedef ::legion_type_handle Legion::TypeHandle
 
typedef ::legion_projection_id_t Legion::ProjectionID
 
typedef ::legion_sharding_id_t Legion::ShardingID
 
typedef ::legion_concurrent_id_t Legion::ConcurrentID
 
typedef ::legion_exception_handler_id_t Legion::ExceptionHandlerID
 
typedef ::legion_region_tree_id_t Legion::RegionTreeID
 
typedef ::legion_distributed_id_t Legion::DistributedID
 
typedef ::legion_address_space_t Legion::AddressSpaceID
 
typedef ::legion_tunable_id_t Legion::TunableID
 
typedef ::legion_local_variable_id_t Legion::LocalVariableID
 
typedef ::legion_mapping_tag_id_t Legion::MappingTagID
 
typedef ::legion_semantic_tag_t Legion::SemanticTag
 
typedef ::legion_variant_id_t Legion::VariantID
 
typedef ::legion_code_descriptor_id_t Legion::CodeDescriptorID
 
typedef ::legion_unique_id_t Legion::UniqueID
 
typedef ::legion_version_id_t Legion::VersionID
 
typedef ::legion_projection_epoch_id_t Legion::ProjectionEpochID
 
typedef ::legion_task_id_t Legion::TaskID
 
typedef ::legion_layout_constraint_id_t Legion::LayoutConstraintID
 
typedef ::legion_shard_id_t Legion::ShardID
 
typedef ::legion_provenance_id_t Legion::ProvenanceID
 
typedef ::legion_internal_color_t Legion::LegionColor
 
typedef ::legion_reduction_op_id_t Legion::ReductionOpID
 
typedef ::legion_custom_serdez_id_t Legion::CustomSerdezID
 
typedef ::legion_coord_t Legion::coord_t
 
typedef Realm::Runtime Legion::RealmRuntime
 
typedef Realm::Machine Legion::Machine
 
typedef Realm::Memory Legion::Memory
 
typedef Realm::Processor Legion::Processor
 
typedef Realm::ProcessorGroup Legion::ProcessorGroup
 
typedef Realm::CodeDescriptor Legion::CodeDescriptor
 
typedef Realm::Reservation Legion::Reservation
 
typedef Realm::CompletionQueue Legion::CompletionQueue
 
typedef Realm::ReductionOpUntyped Legion::ReductionOp
 
typedef Realm::CustomSerdezUntyped Legion::SerdezOp
 
typedef Realm::Machine::ProcessorMemoryAffinity Legion::ProcessorMemoryAffinity
 
typedef Realm::Machine::MemoryMemoryAffinity Legion::MemoryMemoryAffinity
 
typedef Realm::DynamicTemplates::TagType Legion::TypeTag
 
typedef Realm::Logger Legion::Logger
 
template<int DIM, typename T = coord_t>
using Legion::Point = Realm::Point< DIM, T >
 
template<int DIM, typename T = coord_t>
using Legion::Rect = Realm::Rect< DIM, T >
 
template<int DIM, typename T = coord_t>
using Legion::DomainT = Realm::IndexSpace< DIM, T >
 
template<int M, int N, typename T = coord_t>
using Legion::Transform = Realm::Matrix< M, N, T >
 
typedef IndexTaskLauncher Legion::IndexLauncher
 
template<typename FT , int N, typename T = ::legion_coord_t>
using Legion::GenericAccessor = Realm::GenericAccessor< FT, N, T >
 
template<typename FT , int N, typename T = ::legion_coord_t>
using Legion::AffineAccessor = Realm::AffineAccessor< FT, N, T >
 
template<typename FT , int N, typename T = ::legion_coord_t>
using Legion::MultiAffineAccessor = Realm::MultiAffineAccessor< FT, N, T >
 
typedef std::map< CustomSerdezID, const Realm::CustomSerdezUntyped * > Legion::SerdezOpTable
 
typedef std::map< Realm::ReductionOpID, Realm::ReductionOpUntyped * > Legion::ReductionOpTable
 
typedef void(* Legion::SerdezInitFnptr) (const ReductionOp *, void *&, size_t &)
 
typedef void(* Legion::SerdezFoldFnptr) (const ReductionOp *, void *&, size_t &, const void *)
 
using Legion::SerdezInitFunc = std::function< void(const ReductionOp *, void *&, size_t &)>
 
using Legion::SerdezFoldFunc = std::function< void(const ReductionOp *, void *&, size_t &, const void *)>
 
typedef std::map< Realm::ReductionOpID, SerdezRedopFns > Legion::SerdezRedopTable
 
typedef void(* Legion::RegistrationCallbackFnptr) (Machine machine, Runtime *rt, const std::set< Processor > &local_procs)
 
using Legion::RegistrationCallback = std::function< void(Machine, Runtime *, const std::set< Processor > &)>
 
typedef void(* Legion::RegistrationWithArgsCallbackFnptr) (const RegistrationCallbackArgs &args)
 
using Legion::RegistrationWithArgsCallback = std::function< void(const RegistrationCallbackArgs &)>
 
typedef LogicalRegion(* Legion::RegionProjectionFnptr) (LogicalRegion parent, const DomainPoint &, Runtime *rt)
 
typedef LogicalRegion(* Legion::PartitionProjectionFnptr) (LogicalPartition parent, const DomainPoint &, Runtime *rt)
 
typedef HandshakeImpl Legion::Internal::LegionHandshakeImpl
 
typedef Realm::RegionInstance Legion::Internal::PhysicalInstance
 
typedef Realm::CopySrcDstField Legion::Internal::CopySrcDstField
 
typedef unsigned long long Legion::Internal::CollectiveID
 
typedef unsigned long long Legion::Internal::IndexSpaceExprID
 
typedef uint64_t Legion::Internal::LamportClock
 
typedef ContextCoordinate Legion::Internal::TraceLocalID
 
typedef Mapping::Mapper Legion::Internal::Mapper
 
typedef Mapping::MapperEvent Legion::Internal::MapperEvent
 
typedef Mapping::PhysicalInstance Legion::Internal::MappingInstance
 
typedef Mapping::CollectiveView Legion::Internal::MappingCollective
 
typedef Mapping::ProfilingMeasurementID Legion::Internal::ProfilingMeasurementID
 
typedef Internal::TaskContext * Legion::Context
 
typedef Internal::MappingCallInfo * Legion::Mapping::MapperContext
 
typedef Internal::InstanceManager * Legion::Mapping::PhysicalInstanceImpl
 
typedef Internal::CollectiveView * Legion::Mapping::CollectiveViewImpl
 
typedef Internal::LocalLock Legion::Mapping::LocalLock
 

Enumerations

enum  ProfilingMeasurementID { PMID_LEGION_FIRST = Realm::PMID_REALM_LAST , PMID_RUNTIME_OVERHEAD }
 
enum  SpyLoggingLevel { NO_SPY_LOGGING , LIGHT_SPY_LOGGING , HEAVY_SPY_LOGGING , EQ_SPY_LOGGING }
 
enum  RegistrationCallbackMode { NO_REGISTRATION_CALLBACK = 0 , LOCAL_REGISTRATION_CALLBACK = 1 , GLOBAL_REGISTRATION_CALLBACK = 2 }
 

Functions

template<typename T1 , typename T2 >
T1 legion_safe_cast (T2 *ptr)
 

Variables

constexpr LegionColor Legion::Internal::INVALID_COLOR
 
Runtime * Legion::Internal::runtime = nullptr
 
SpyLoggingLevel Legion::Internal::spy_logging_level = NO_SPY_LOGGING
 
thread_local TaskContext * Legion::Internal::implicit_context = nullptr
 
thread_local MappingCallInfo * Legion::Internal::implicit_mapper_call = nullptr
 
thread_local LegionProfInstance * Legion::Internal::implicit_profiler = nullptr
 
thread_local AutoLock * Legion::Internal::local_lock_list = nullptr
 
thread_local DistributedID Legion::Internal::implicit_enclosing_context = 0
 
thread_local Operation * Legion::Internal::implicit_operation = nullptr
 
thread_local ProvenanceID Legion::Internal::implicit_provenance = 0
 
thread_local::legion_unique_id_t Legion::Internal::implicit_unique_op_id = 0
 
thread_local LgEvent Legion::Internal::implicit_fevent = {}
 
thread_local RegistrationCallbackMode Legion::Internal::inside_registration_callback
 
thread_local ImplicitReferenceTracker * Legion::Internal::implicit_reference_tracker
 
Realm::Logger Legion::Internal::log_legion
 
Realm::Logger Legion::Internal::log_allocation
 
Realm::Logger Legion::Internal::log_migration
 
Realm::Logger Legion::Internal::log_prof
 
Realm::Logger Legion::Internal::log_garbage
 
Realm::Logger Legion::Internal::log_spy
 
Realm::Logger Legion::Internal::log_shutdown
 
Realm::Logger Legion::Internal::log_tracing
 
Realm::Logger Legion::Internal::log_auto_trace
 
Realm::Logger Legion::Internal::log_registration
 

Detailed Description

Types, enumerations and forward declarations shared across the API

Variable Documentation

◆ implicit_reference_tracker

thread_local ImplicitReferenceTracker* Legion::Internal::implicit_reference_tracker
inline
Initial value:
=
nullptr

◆ inside_registration_callback

thread_local RegistrationCallbackMode Legion::Internal::inside_registration_callback
inline
Initial value:
=
NO_REGISTRATION_CALLBACK

◆ INVALID_COLOR

constexpr LegionColor Legion::Internal::INVALID_COLOR
constexpr
Initial value:
=
std::numeric_limits<LegionColor>::max()