This is an archive of the discontinued LLVM Phabricator instance.

[OpenMP][Stats] Cleanup stats gathering code
ClosedPublic

Authored by jlpeyton on Jul 23 2018, 2:45 PM.

Details

Summary
  1. Remove unnecessary data from list node structure
  2. Remove timerPair in favor of pushing/popping explicitTimers. This way, nested timers will work properly.
  3. Fix #pragma omp critical timers
  4. Add histogram capability
  5. Add KMP_STATS_FILE formatting capability
  6. Have time partitioned into serial & parallel by introducing partitionedTimers::exchange(). This also counts the number of serial regions in the executable.
  7. Fix up the timers around OMP loops so that scheduling overhead and work are both counted correctly.
  8. Fix up the iterations statistics so they count the number of iterations the thread receives at each loop scheduling event
  9. Change timers so there is only one RDTSC read per event change
  10. Fix up the outdated comments for the timers

Diff Detail

Repository
rL LLVM

Event Timeline

jlpeyton created this revision.Jul 23 2018, 2:45 PM
This revision is now accepted and ready to land.Jul 26 2018, 11:40 AM
This revision was automatically updated to reflect the committed changes.