15#ifndef OPENMP_TOOLS_OMPTEST_INCLUDE_OMPTASSERTEVENT_H
16#define OPENMP_TOOLS_OMPTEST_INCLUDE_OMPTASSERTEVENT_H
36 const std::string &Group,
38 const std::string &SyncPointName);
41 const std::string &Group,
45 const std::string &Group,
47 ompt_thread_t ThreadType);
50 const std::string &Group,
54 const std::string &Group,
59 const std::string &Name,
const std::string &Group,
67 Work(
const std::string &Name,
const std::string &Group,
69 ompt_scope_endpoint_t Endpoint,
76 Dispatch(
const std::string &Name,
const std::string &Group,
84 TaskCreate(
const std::string &Name,
const std::string &Group,
87 const ompt_frame_t *EncounteringTaskFrame =
95 const std::string &Group,
99 ImplicitTask(
const std::string &Name,
const std::string &Group,
100 const ObserveState &Expected, ompt_scope_endpoint_t Endpoint,
108 SyncRegion(
const std::string &Name,
const std::string &Group,
110 ompt_scope_endpoint_t Endpoint,
116 Target(
const std::string &Name,
const std::string &Group,
124 TargetEmi(
const std::string &Name,
const std::string &Group,
126 ompt_scope_endpoint_t Endpoint,
134 TargetDataOp(
const std::string &Name,
const std::string &Group,
136 ompt_id_t HostOpId, ompt_target_data_op_t OpType,
void *SrcAddr,
137 int SrcDeviceNum,
void *DstAddr,
int DstDeviceNum,
size_t Bytes,
138 const void *CodeptrRA);
141 TargetDataOp(
const std::string &Name,
const std::string &Group,
142 const ObserveState &Expected, ompt_target_data_op_t OpType,
154 const ObserveState &Expected, ompt_scope_endpoint_t Endpoint,
155 ompt_data_t *TargetTaskData, ompt_data_t *TargetData,
156 ompt_id_t *HostOpId, ompt_target_data_op_t OpType,
157 void *SrcAddr,
int SrcDeviceNum,
void *DstAddr,
158 int DstDeviceNum,
size_t Bytes,
const void *CodeptrRA);
162 const ObserveState &Expected, ompt_target_data_op_t OpType,
163 ompt_scope_endpoint_t Endpoint,
175 const std::string &Group,
177 ompt_id_t TargetId, ompt_id_t HostOpId,
178 unsigned int RequestedNumTeams);
181 TargetSubmit(
const std::string &Name,
const std::string &Group,
182 const ObserveState &Expected,
unsigned int RequestedNumTeams,
188 const ObserveState &Expected, ompt_scope_endpoint_t Endpoint,
189 ompt_data_t *TargetData, ompt_id_t *HostOpId,
190 unsigned int RequestedNumTeams);
194 const ObserveState &Expected,
unsigned int RequestedNumTeams,
195 ompt_scope_endpoint_t Endpoint,
200 const std::string &Group,
204 const std::string &Name,
const std::string &Group,
208 ompt_function_lookup_t LookupFn =
expectedDefault(ompt_function_lookup_t),
212 const std::string &Group,
217 DeviceLoad(
const std::string &Name,
const std::string &Group,
228 const std::string &Group,
232 const std::string &Group,
234 int DeviceNum, ompt_buffer_t **Buffer,
240 ompt_buffer_t *Buffer,
size_t Bytes,
241 ompt_buffer_cursor_t Begin,
int BufferOwned);
244 const std::string &Group,
246 ompt_record_ompt_t *Record);
250 BufferRecord(
const std::string &Name,
const std::string &Group,
252 ompt_target_t Kind, ompt_scope_endpoint_t Endpoint,
260 BufferRecord(
const std::string &Name,
const std::string &Group,
262 ompt_target_data_op_t OpType,
size_t Bytes,
263 std::pair<ompt_device_time_t, ompt_device_time_t> Timeframe,
274 const std::string &Name,
const std::string &Group,
277 ompt_device_time_t MinimumTimeDelta =
expectedDefault(ompt_device_time_t),
288 BufferRecord(
const std::string &Name,
const std::string &Group,
290 std::pair<ompt_device_time_t, ompt_device_time_t> Timeframe,
299 const std::string &Name,
const std::string &Group,
301 ompt_device_time_t MinimumTimeDelta =
expectedDefault(ompt_device_time_t),
308 const std::string &Group,
310 ompt_buffer_t *Buffer);
335 std::string
toString(
bool PrefixEventName =
false)
const;
344 static std::string getName(
const std::string &Name,
345 const char *Caller = __builtin_FUNCTION()) {
346 std::string EName = Name;
348 EName.append(Caller).append(
" (auto generated)");
354 static std::string getGroup(
const std::string &Group) {
364 std::unique_ptr<internal::InternalEvent> TheEvent;
Declares internal event representations along the default CTOR definition.
#define expectedDefault(TypeName)
EventTy
Enum values are used for comparison of observed and asserted events List is based on OpenMP 5....
bool operator==(const OmptAssertEvent &A, const OmptAssertEvent &B)
const char * to_string(ObserveState State)
Helper function, returning an ObserveState string representation.
unsigned * Index(unsigned *p, unsigned i, unsigned j, unsigned bound2)
POD type, which holds the target region id, corresponding to an event group.
AssertEventGroup(uint64_t TargetRegion)
Assertion event struct, provides statically callable CTORs.
static OmptAssertEvent TargetDataOpEmi(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_scope_endpoint_t Endpoint, ompt_data_t *TargetTaskData, ompt_data_t *TargetData, ompt_id_t *HostOpId, ompt_target_data_op_t OpType, void *SrcAddr, int SrcDeviceNum, void *DstAddr, int DstDeviceNum, size_t Bytes, const void *CodeptrRA)
OmptAssertEvent(OmptAssertEvent &&o)=default
Allow move construction (due to std::unique_ptr)
static OmptAssertEvent SyncRegion(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_sync_region_t Kind, ompt_scope_endpoint_t Endpoint, ompt_data_t *ParallelData=expectedDefault(ompt_data_t *), ompt_data_t *TaskData=expectedDefault(ompt_data_t *), const void *CodeptrRA=expectedDefault(const void *))
std::string getEventName() const
Get the event's name.
static OmptAssertEvent BufferRecord(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_record_ompt_t *Record)
static OmptAssertEvent TargetSubmit(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_id_t TargetId, ompt_id_t HostOpId, unsigned int RequestedNumTeams)
static OmptAssertEvent AssertionSuspend(const std::string &Name, const std::string &Group, const ObserveState &Expected)
static OmptAssertEvent ControlTool(const std::string &Name, const std::string &Group, const ObserveState &Expected)
static OmptAssertEvent Dispatch(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_data_t *ParallelData=expectedDefault(ompt_data_t *), ompt_data_t *TaskData=expectedDefault(ompt_data_t *), ompt_dispatch_t Kind=expectedDefault(ompt_dispatch_t), ompt_data_t Instance=expectedDefault(ompt_data_t))
static OmptAssertEvent AssertionSyncPoint(const std::string &Name, const std::string &Group, const ObserveState &Expected, const std::string &SyncPointName)
static OmptAssertEvent TaskSchedule(const std::string &Name, const std::string &Group, const ObserveState &Expected)
static OmptAssertEvent BufferRequest(const std::string &Name, const std::string &Group, const ObserveState &Expected, int DeviceNum, ompt_buffer_t **Buffer, size_t *Bytes)
friend bool operator==(const OmptAssertEvent &A, const OmptAssertEvent &B)
Make events comparable.
std::string toString(bool PrefixEventName=false) const
Returns the string representation of the event.
static OmptAssertEvent DeviceUnload(const std::string &Name, const std::string &Group, const ObserveState &Expected)
static OmptAssertEvent ParallelEnd(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_data_t *ParallelData=expectedDefault(ompt_data_t *), ompt_data_t *EncounteringTaskData=expectedDefault(ompt_data_t *), int Flags=expectedDefault(int), const void *CodeptrRA=expectedDefault(const void *))
static OmptAssertEvent DeviceLoad(const std::string &Name, const std::string &Group, const ObserveState &Expected, int DeviceNum, const char *Filename=expectedDefault(const char *), int64_t OffsetInFile=expectedDefault(int64_t), void *VmaInFile=expectedDefault(void *), size_t Bytes=expectedDefault(size_t), void *HostAddr=expectedDefault(void *), void *DeviceAddr=expectedDefault(void *), uint64_t ModuleId=expectedDefault(int64_t))
ObserveState getEventExpectedState() const
Get the event's expected observation state.
internal::EventTy getEventType() const
Return the actual event type enum value.
static OmptAssertEvent TargetSubmitEmi(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_scope_endpoint_t Endpoint, ompt_data_t *TargetData, ompt_id_t *HostOpId, unsigned int RequestedNumTeams)
internal::InternalEvent * getEvent() const
Get a pointer to the internal event.
static OmptAssertEvent TargetEmi(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_target_t Kind, ompt_scope_endpoint_t Endpoint, int DeviceNum=expectedDefault(int), ompt_data_t *TaskData=expectedDefault(ompt_data_t *), ompt_data_t *TargetTaskData=expectedDefault(ompt_data_t *), ompt_data_t *TargetData=expectedDefault(ompt_data_t *), const void *CodeptrRA=expectedDefault(void *))
static OmptAssertEvent TargetDataOp(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_id_t TargetId, ompt_id_t HostOpId, ompt_target_data_op_t OpType, void *SrcAddr, int SrcDeviceNum, void *DstAddr, int DstDeviceNum, size_t Bytes, const void *CodeptrRA)
static OmptAssertEvent Work(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_work_t WorkType, ompt_scope_endpoint_t Endpoint, ompt_data_t *ParallelData=expectedDefault(ompt_data_t *), ompt_data_t *TaskData=expectedDefault(ompt_data_t *), uint64_t Count=expectedDefault(uint64_t), const void *CodeptrRA=expectedDefault(const void *))
static OmptAssertEvent DeviceFinalize(const std::string &Name, const std::string &Group, const ObserveState &Expected, int DeviceNum)
static OmptAssertEvent BufferRecordDeallocation(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_buffer_t *Buffer)
static OmptAssertEvent DeviceInitialize(const std::string &Name, const std::string &Group, const ObserveState &Expected, int DeviceNum, const char *Type=expectedDefault(const char *), ompt_device_t *Device=expectedDefault(ompt_device_t *), ompt_function_lookup_t LookupFn=expectedDefault(ompt_function_lookup_t), const char *DocumentationStr=expectedDefault(const char *))
std::string getEventGroup() const
Get the event's group name.
static OmptAssertEvent BufferComplete(const std::string &Name, const std::string &Group, const ObserveState &Expected, int DeviceNum, ompt_buffer_t *Buffer, size_t Bytes, ompt_buffer_cursor_t Begin, int BufferOwned)
static OmptAssertEvent ThreadEnd(const std::string &Name, const std::string &Group, const ObserveState &Expected)
OmptAssertEvent & operator=(OmptAssertEvent &&o)=default
static OmptAssertEvent ParallelBegin(const std::string &Name, const std::string &Group, const ObserveState &Expected, int NumThreads)
static OmptAssertEvent TaskCreate(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_data_t *EncounteringTaskData=expectedDefault(ompt_data_t *), const ompt_frame_t *EncounteringTaskFrame=expectedDefault(ompt_frame_t *), ompt_data_t *NewTaskData=expectedDefault(ompt_data_t *), int Flags=expectedDefault(int), int HasDependences=expectedDefault(int), const void *CodeptrRA=expectedDefault(const void *))
static OmptAssertEvent ThreadBegin(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_thread_t ThreadType)
static OmptAssertEvent ImplicitTask(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_scope_endpoint_t Endpoint, ompt_data_t *ParallelData=expectedDefault(ompt_data_t *), ompt_data_t *TaskData=expectedDefault(ompt_data_t *), unsigned int ActualParallelism=expectedDefault(unsigned int), unsigned int Index=expectedDefault(unsigned int), int Flags=expectedDefault(int))
static OmptAssertEvent Target(const std::string &Name, const std::string &Group, const ObserveState &Expected, ompt_target_t Kind, ompt_scope_endpoint_t Endpoint, int DeviceNum=expectedDefault(int), ompt_data_t *TaskData=expectedDefault(ompt_data_t *), ompt_id_t TargetId=expectedDefault(ompt_id_t), const void *CodeptrRA=expectedDefault(void *))
Base event class Offers default CTOR, DTOR and CTOR which assigns the actual event type.