DynamoRIO / DynamoRIO/dynamorio
Build DrCount Tool
- 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
Assessment
This issue has not been assessed yet.