DynamoRIO / DynamoRIO/dynamorio

Add instruction opcode categories to Google workload traces

Open
#6,238 2 comments 0 reactions 0 assignees View on GitHub
Component-DrMemtrace Type-Feature
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 18h
Merged PRs (30d)
30

Description

This is a proposal to provide categories of opcodes for the public Google workload traces https://dynamorio.org/google_workload_traces.html where the actual opcodes cannot be released.

Instead of a linear list of absolute categories we were considering a composable bit vector of attributions:
+ Integer ops
+ Single Fp ops
+ Double Fp ops
+ FMA ops (to calculate roofline)
+ Vector
+ Logical
+ Branch
+ Special ops (memory barrier, syscall?)
+ Micro-coded / multi-ops / complex
+ Conditional?
+ Atomic?

Examples:
+ SIMD Floating Point (VADDPS) → Vector, FP
+ Gather → Vector, Integer?, Load, Multi-ops

Xref instr_is_floating_ex() in today's interface which has:
```C
typedef enum {
DR_FP_STATE, /**< Loads, stores, or queries general floating point state. */
DR_FP_MOVE, /**< Moves floating point values from one location to another. */
DR_FP_CONVERT, /**< Converts to or from floating point values. */
DR_FP_MATH, /**< Performs arithmetic or conditional operations. */
} dr_fp_type_t;
```

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the Google workload traces page and the existing instr_is_floating_ex() interface, including dr_fp_type_t. The proposal does not name implementation files or tests; done would require a decided composable opcode-category model that can represent the listed examples without releasing actual opcodes.

Written by the indexing model from the issue text.

Assessment

Tech stack
c
Domain
devtools, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.