Five event primitives:
- memory
- compute
- synchronization
- context
- control flow
Attribute | Details |
---|---|
Type | none read write |
Address |
|
Size (Bytes) |
|
Attribute | Details |
---|---|
Type | Integer Operation (IOP) Floating Point Operation (FLOP) |
Arity |
|
Size |
|
Cost Operation | add sub mult div shift mov |
Attribute | Details |
---|---|
Type | none spawn join barrier sync swap lock unlock conditional wait conditional signal conditional broadcast spin lock spin unlock |
data1 |
|
data2 |
|
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.
Attribute | Details |
---|---|
Type | none instruction basic Block function Enter function Exit thread |
id name (function) |
numeric string |
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.
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 | condition false | |
Destination Type | instruction other |
Destination |
|