Skip to content

realm: annotate all realm classes with REALM_INTERNAL_API, REALM_INTERNAL_API_EXTERNAL_LINKAGE or REALM_PUBLIC_API

Wei Wu requested to merge refactor_visibility into master

Here is a list of REALM_PUBLIC_API:

Runtime
CommandLineParser
CodeDescriptor
CodeImplementation
CodeProperty
FunctionPointerImplementation
DSOReferenceImplementation
Clock
Event
UserEvent
Barrier
CompletionQueue
Backtrace
ExecutionException
CancellationException
PoisonedEventException
ApplicationException
CopySrcDstField
FieldDataDescriptor
TranslationTransform
AffineTransform
StructuredTransform
DomainTransform
CopyIndirection
Affine
Unstructured
IndexSpace
IndexSpaceGeneric
IndexSpaceIterator
AffineLinearizedIndexSpace
LinearizedIndexSpace
LinearizedIndexSpaceIntfc
InstanceLayoutConstraints
InstanceLayoutGeneric
InstanceLayoutOpaque
InstanceLayoutPieceBase
InstanceLayoutPiece
AffineLayoutPiece
InstancePieceList
InstanceLayout
GenericAccessor
AffineAccessor
MultiAffineAccessor
RegionInstance
ExternalInstanceResource
ExternalMemoryResource
ExternalFileResource
Logger
LoggerMessage
LoggerOutputStream
Machine
Machine::ProcessorQuery
Machine::MemoryQuery
MachineQueryIterator
Memory
ModuleConfig
Point
Rect
Matrix
Processor
ProcessorGroup
Reservation
FastReservation
Runtime
SparsityMap
Subgraph
SubgraphDefinition
Clock
TimeLimit
TimeStamp
OperationStatus
OperationAbnormalStatus
OperationBacktrace
OperationTimeline
OperationTimelineGPU
OperationEventWaits
OperationProcessorUsage
OperationMemoryUsage
OperationCopyInfo
OperationFinishEvent
OperationSubgraphInfo
InstanceStatus
InstanceAbnormalStatus
InstanceAllocResult
InstanceTimeline
InstanceMemoryUsage
CachePerfCounters
IPCPerfCounters
TLBPerfCounters
BranchPredictionPerfCounters
ProfilingRequest
ProfilingRequestSet
ProfilingMeasurementCollection
ProfilingResponse
GASNet1Module
GASNetExModule
MPIModule
UCPModule
CoreModuleConfig
CoreModule
NumaModuleConfig
NumaModule
OpenMPModuleConfig
OpenMPModule
ProcSetModuleConfig
ProcSetModule
PythonModuleConfig
PythonModule
PythonSourceImplementation
LLVMIRImplementation
LLVMJitModule
HDF5ModuleConfig
HDF5Module
HDF5PieceInfo
HDF5LayoutPiece
ExternalHDF5Resource
CudaModuleConfig
CudaModule
CudaArrayLayoutPiece
ExternalCudaMemoryResource
ExternalCudaArrayResource
ExternalCudaPinnedHostResource
HipModuleConfig
HipModule
ExternalHipMemoryResource
ExternalHipPinnedHostResource
crc32c_accumulate
realm_strerror
get_task_cuda_stream
set_task_ctxsync_required
get_task_hip_stream
set_task_ctxsync_required

Here is a list of REALM_INTERNAL_API_EXTERNAL_LINKAGE with explanations of why we need to expose them:

  1. cmdline.h because REALM_PUBLIC_API CommandLineParser contains CommandLineOption
CommandLineOption
IntegerCommandLineOption
IntegerUnitsCommandLineOption
StringCommandLineOption
StringListCommandLineOption
BooleanCommandLineOption
MethodCommandLineOption
  1. dynamic_templates.h because they are used by legion
TypeListTerm
TypeListElem
IntDemuxHelper
IntList
ListProduct2
ListProduct3
ListProduct4
  1. sparsity.h because SparsityMapPublicImpl is used by legion
SparsityMapPublicImpl
SparsityMapEntry // a member of SparsityMapPublicImpl
atimic // a member of SparsityMapPublicImpl
  1. util.h
PrettyVector // used in realm tutorial
WithDefault //used by deppart test
  1. custom_serdez.h
CustomSerdezUntyped // used by legion
SerdezObject // used by legion rendering example
  1. processor.h they are used by kokkos
is_kokkos_execution_space
KokkosExecInstance 

However, there are a list of REALM_INTERNAL_API_EXTERNAL_LINKAGE that I do not know why they are exposed

// activemsg.h
CompletionCallbackBase
IncomingMessageManager

// bgwork.h
BackgroundWorkItem

// codedesc.h
DSOCodeTranslator

// inst_layout.h
AccessorRefHelper

// module.h
Module

// mem_impl.h
MemoryImpl
RemoteMemory

// inst_layout.h
Instruction
AffinePiece
SplitPlane

// mutex.h
MutexChecker
Doorbell
DoorbellList
UnfairMutex
FIFOMutex
KernelMutex
DelegatingMutex
UnfairCondVar
FIFOCondVar
KernelCondVar

// network.h
NetworkModule
NetworkSegment
NodeSetIterator
NodeSetBitmask
NodeSet

// serialize.h
PolymorphicSerdezHelper

// transfer/ib_memory.h
IBMemory

// transfer/channel.h
RemoteChannelInfo
Edited by Wei Wu

Merge request reports