Events Documentation

Events List

Five event primitives:

  1. memory
  2. compute
  3. synchronization
  4. context
  5. control flow

Memory

Attribute Details
Type
none
read
write
Address numeric
Size (Bytes) numeric

Compute

Attribute Details
Type
Integer Operation (IOP)
Floating Point Operation (FLOP)
Arity numeric
Size numeric
Cost Operation
add
sub
mult
div
shift
mov

Synchronization

Attribute Details
Type
none
spawn
join
barrier
sync
swap
lock
unlock
conditional wait
conditional signal
conditional broadcast
spin lock
spin unlock
data1 numeric
data2 numeric

Todo

data1/2 is currently a hack for SynchroTraceGen. Eventually we want to have the amount of data change depending on Type. Each datum is not necessarily used, depending on the Type. Ideally the amount of data tupled in the event will depend on its Type, but it’s faster to iterate over when there’s a definitive size.

Context

Attribute Details
Type
none
instruction
basic Block
function Enter
function Exit
thread
id
name (function)
numeric
string

Todo

Currently threads are delimited in the event stream with a Sync-Swap event. This should eventually move to a Cxt-Thread event, since the event does not strictly order the threads, and is intended to just group events that follow it.

Control Flow

Note

Control Flow is currently not implemented. This table is intended as a guide for future support.

Attribute Details
Type
jump
call
return
suspend
Conditional
true
false
condition
Destination Type
instruction
other
Destination numeric

Notes