diff options
author | Jonathan Peyton <jonathan.l.peyton@intel.com> | 2016-03-21 18:32:26 +0000 |
---|---|---|
committer | Jonathan Peyton <jonathan.l.peyton@intel.com> | 2016-03-21 18:32:26 +0000 |
commit | 93a879ce78a65b9c38ad5db7b16d0e5ea4283478 (patch) | |
tree | c215f44e41dc186ce8cc6ba9b13c87617f16ca51 | |
parent | d2f05f52b4bc046865daad00916a2a5fb7bdc3b9 (diff) | |
download | bcm5719-llvm-93a879ce78a65b9c38ad5db7b16d0e5ea4283478.tar.gz bcm5719-llvm-93a879ce78a65b9c38ad5db7b16d0e5ea4283478.zip |
[STATS] Add OMP_critical and OMP_critical_wait timers
OMP_critical - time spent in critical section
OMP_critical_wait - time spent waiting to enter a critical section
llvm-svn: 263967
-rw-r--r-- | openmp/runtime/src/kmp_csupport.c | 4 | ||||
-rw-r--r-- | openmp/runtime/src/kmp_stats.h | 3 |
2 files changed, 6 insertions, 1 deletions
diff --git a/openmp/runtime/src/kmp_csupport.c b/openmp/runtime/src/kmp_csupport.c index 62d65d8d902..42d5e41c84f 100644 --- a/openmp/runtime/src/kmp_csupport.c +++ b/openmp/runtime/src/kmp_csupport.c @@ -1114,6 +1114,7 @@ __kmpc_critical( ident_t * loc, kmp_int32 global_tid, kmp_critical_name * crit ) __kmpc_critical_with_hint(loc, global_tid, crit, omp_lock_hint_none); #else KMP_COUNT_BLOCK(OMP_CRITICAL); + KMP_TIME_BLOCK(OMP_critical_wait); /* Time spent waiting to enter the critical section */ kmp_user_lock_p lck; KC_TRACE( 10, ("__kmpc_critical: called T#%d\n", global_tid ) ); @@ -1155,6 +1156,7 @@ __kmpc_critical( ident_t * loc, kmp_int32 global_tid, kmp_critical_name * crit ) __kmp_itt_critical_acquired( lck ); #endif /* USE_ITT_BUILD */ + KMP_START_EXPLICIT_TIMER(OMP_critical); KA_TRACE( 15, ("__kmpc_critical: done T#%d\n", global_tid )); #endif // KMP_USE_DYNAMIC_LOCK } @@ -1359,7 +1361,7 @@ __kmpc_end_critical(ident_t *loc, kmp_int32 global_tid, kmp_critical_name *crit) #endif #endif // KMP_USE_DYNAMIC_LOCK - + KMP_STOP_EXPLICIT_TIMER(OMP_critical); KA_TRACE( 15, ("__kmpc_end_critical: done T#%d\n", global_tid )); } diff --git a/openmp/runtime/src/kmp_stats.h b/openmp/runtime/src/kmp_stats.h index 9f81580d71d..32841ab9d56 100644 --- a/openmp/runtime/src/kmp_stats.h +++ b/openmp/runtime/src/kmp_stats.h @@ -111,6 +111,8 @@ enum stats_flags_e { macro (FOR_static_scheduling, 0, arg) \ macro (FOR_dynamic_scheduling, 0, arg) \ macro (OMP_task, 0, arg) \ + macro (OMP_critical, 0, arg) \ + macro (OMP_critical_wait, 0, arg) \ macro (OMP_single, 0, arg) \ macro (OMP_master, 0, arg) \ macro (OMP_set_numthreads, stats_flags_e::noUnits | stats_flags_e::noTotal, arg) \ @@ -198,6 +200,7 @@ enum stats_flags_e { #define KMP_FOREACH_EXPLICIT_TIMER(macro, arg) \ macro(OMP_serial, 0, arg) \ macro(OMP_start_end, 0, arg) \ + macro(OMP_critical, 0, arg) \ macro(OMP_single, 0, arg) \ macro(OMP_master, 0, arg) \ KMP_FOREACH_EXPLICIT_DEVELOPER_TIMER(macro,arg) \ |