#include <memref.h>
Data Fields | |
struct _memref_data_t | data |
struct _memref_instr_t | instr |
struct _memref_flush_t | flush |
struct _memref_thread_exit_t | exit |
struct _memref_marker_t | marker |
Each trace entry is one of the structures in this union. Each entry identifies the originating process and thread. Although the pc of each data reference is provided, the trace also guarantees that an instruction entry immediately precedes the data references that it is responsible for, with no intervening trace entries (unless it is a trace filtered with an online first-level cache). Offline traces further guarantee that an instruction entry for a branch instruction is always followed by an instruction entry for the branch's target (with any memory references for the branch in between of course) without a thread switch intervening, to make it simpler to identify branch targets (again, unless the trace is filtered by an online first-level cache). Online traces do not currently guarantee this.
struct _memref_data_t _memref_t::data |
A data load or store.
struct _memref_thread_exit_t _memref_t::exit |
A thread exit.
struct _memref_flush_t _memref_t::flush |
A software-initiated cache flush.
struct _memref_instr_t _memref_t::instr |
An insruction fetch.
struct _memref_marker_t _memref_t::marker |
A marker holding metadata.