llvm-project/openmp
Jonathan Peyton 11dc82fa83 [STATS] Use partitioned timer scheme
This change removes the current timers with ones that partition time properly.
The current timers are nested, so that if a new timer, B, starts when the
current timer, A, is already timing, A's time will include B's. To eliminate
this problem, the partitioned timers are designed to stop the current timer (A),
let the new timer run (B), and when the new timer is finished, restart the
previously running timer (A). With this partitioning of time, a threads' timers
all sum up to the OMP_worker_thread_life time and can now easily show the
percentage of time a thread is spending in different parts of the runtime or
user code.

There is also a new state variable associated with each thread which tells where
it is executing a task. This corresponds with the timers: OMP_task_*, e.g., if
time is spent in OMP_task_taskwait, then that thread executed tasks inside a
#pragma omp taskwait construct.

The changes are mostly changing the MACROs to use the new PARITIONED_* macros,
the new partitionedTimers class and its methods, and new state logic.

Differential Revision: http://reviews.llvm.org/D19229

llvm-svn: 268640
2016-05-05 16:15:57 +00:00
..
offload Liboffload: Patch for MPSS > 3.4.x (provided by Tim Cramer) 2015-05-06 10:58:40 +00:00
runtime [STATS] Use partitioned timer scheme 2016-05-05 16:15:57 +00:00
testsuite Apply name change to testsuite file. 2015-06-01 04:24:23 +00:00
www Update www/index.html to reflect current status of OpenMP project 2016-03-18 14:50:01 +00:00
CMakeLists.txt [CMake] Introduce OPENMP_LLVM_TOOLS_DIR 2016-02-05 07:00:13 +00:00
CREDITS.txt This patch contains the new files for OMPT and the needed changes to the build infrastructure 2015-04-29 16:22:07 +00:00
LICENSE.txt ARM Limited license agreement from the copyright/patent holder 2016-04-25 19:12:20 +00:00