Improve OMPT initialization code

Use of #ifdef OMPT_DEBUG was causing messages to be generated under normal
operation when the OpenMP library was compiled with KMP_DEBUG enabled.
Elsewhere, KMP_DEBUG evaluates assertions, but never produces messages during
normal operation. To avoid this inconsistency, set OMPT_DEBUG using a cmake
variable LIBOMP_OMPT_DEBUG.

While I was editing the associated ompt-specific.h and ompt-general.c files,
make the spacing and comments consistent.

Patch by John Mellor-Crummey

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

llvm-svn: 252173
This commit is contained in:
Jonathan Peyton 2015-11-05 16:54:55 +00:00
parent 27149cf32d
commit 95246e7def
4 changed files with 26 additions and 10 deletions

View File

@ -273,6 +273,8 @@ if(LIBOMP_STATS)
endif()
# OMPT-support
set(LIBOMP_OMPT_DEBUG FALSE CACHE BOOL
"Trace OMPT initialization?")
set(LIBOMP_OMPT_SUPPORT FALSE CACHE BOOL
"OMPT-support?")
set(LIBOMP_OMPT_BLAME TRUE CACHE BOOL

View File

@ -35,6 +35,8 @@
#define KMP_STATS_ENABLED LIBOMP_STATS
#cmakedefine01 LIBOMP_USE_DEBUGGER
#define USE_DEBUGGER LIBOMP_USE_DEBUGGER
#cmakedefine01 LIBOMP_OMPT_DEBUG
#define OMPT_DEBUG LIBOMP_OMPT_DEBUG
#cmakedefine01 LIBOMP_OMPT_SUPPORT
#define OMPT_SUPPORT LIBOMP_OMPT_SUPPORT
#cmakedefine01 LIBOMP_OMPT_BLAME

View File

@ -134,31 +134,31 @@ ompt_initialize_t ompt_tool_windows()
#if OMPT_DEBUG
printf("ompt_tool_windows(): looking for ompt_tool\n");
#endif
if( !EnumProcessModules( process, modules, NUM_MODULES * sizeof(HMODULE),
&needed ) ) {
if (!EnumProcessModules( process, modules, NUM_MODULES * sizeof(HMODULE),
&needed)) {
// Regardless of the error reason use the stub initialization function
free(modules);
return NULL;
}
// Check if NUM_MODULES is enough to list all modules
new_size = needed / sizeof(HMODULE);
if( new_size > NUM_MODULES ) {
if (new_size > NUM_MODULES) {
#if OMPT_DEBUG
printf("ompt_tool_windows(): resize buffer to %d bytes\n", needed);
#endif
modules = (HMODULE*)realloc( modules, needed );
// If resizing failed use the stub function.
if( !EnumProcessModules( process, modules, needed, &needed ) ) {
if (!EnumProcessModules(process, modules, needed, &needed)) {
free(modules);
return NULL;
}
}
for( i = 0; i < new_size; ++i ) {
for (i = 0; i < new_size; ++i) {
(FARPROC &)ompt_tool_p = GetProcAddress(modules[i], "ompt_tool");
if( ompt_tool_p ) {
if (ompt_tool_p) {
#if OMPT_DEBUG
TCHAR modName[MAX_PATH];
if( GetModuleFileName(modules[i], modName, MAX_PATH))
if (GetModuleFileName(modules[i], modName, MAX_PATH))
printf("ompt_tool_windows(): ompt_tool found in module %s\n",
modName);
#endif
@ -168,7 +168,7 @@ ompt_initialize_t ompt_tool_windows()
#if OMPT_DEBUG
else {
TCHAR modName[MAX_PATH];
if( GetModuleFileName(modules[i], modName, MAX_PATH) )
if (GetModuleFileName(modules[i], modName, MAX_PATH))
printf("ompt_tool_windows(): ompt_tool not found in module %s\n",
modName);
}
@ -228,7 +228,7 @@ void ompt_pre_init()
break;
}
#if OMPT_DEBUG
printf("ompt_pre_init():ompt_enabled = %d\n", ompt_enabled);
printf("ompt_pre_init(): ompt_enabled = %d\n", ompt_enabled);
#endif
}

View File

@ -3,8 +3,18 @@
#include "kmp.h"
/*****************************************************************************
* types
****************************************************************************/
typedef kmp_info_t ompt_thread_t;
/*****************************************************************************
* forward declarations
****************************************************************************/
void __ompt_team_assign_id(kmp_team_t *team, ompt_parallel_id_t ompt_pid);
void __ompt_thread_assign_wait_id(void *variable);
@ -34,15 +44,17 @@ ompt_task_id_t __ompt_get_task_id_internal(int depth);
ompt_frame_t *__ompt_get_task_frame_internal(int depth);
/*****************************************************************************
* macros
****************************************************************************/
#define OMPT_DEBUG KMP_DEBUG
#define OMPT_HAVE_WEAK_ATTRIBUTE KMP_HAVE_WEAK_ATTRIBUTE
#define OMPT_HAVE_PSAPI KMP_HAVE_PSAPI
#define OMPT_STR_MATCH(haystack, needle) __kmp_str_match(haystack, 0, needle)
//******************************************************************************
// inline functions
//******************************************************************************