DynamoRIO / DynamoRIO/dynamorio
Add instruction opcode categories to Google workload traces
- 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
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