DynamoRIO / DynamoRIO/dynamorio

Build DrCount Tool

Open
#1,635 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C
Stars
3.2k
Forks
629
Avg merge
2d 15h
Merged PRs (30d)
31

Description

Similar to hardware performance count, we can use DynamoRIO to collect the execution count of certain event, and even provide more information about the program execution.
The counter could include:
- num of instr
- num of mem ref
- num of floating point ops
- num of SIMD ops
- num of syscalls
- num of threads
- instr opcode mix
- individual instr/bb execution count per thread
- ...
This would provide some insightful information about the program performance, and used by optimization to identify the performance bottleneck.

The brute-force way is to insert a sequence of instruction to update each event counter, which would be very slow.
Instead, we can have a counter per bb per thread, and only need update that counter in each bb, and summarize the result at the end of the execution. By doing that, we have many advantages:
- one counter update per bb
- no lock (per-thread counter)
- 32-bit counter
- rich information stored in associated bb.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.