Skip to content
  1. May 25, 2016
  2. May 20, 2016
  3. Nov 05, 2015
    • Jonathan Peyton's avatar
      Improve OMPT initialization code · 95246e7d
      Jonathan Peyton authored
      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
      95246e7d
  4. Oct 29, 2015
    • Jonathan Peyton's avatar
      [OMPT] Windows Support for OMPT · 69e596a5
      Jonathan Peyton authored
      The problem is that the ompt_tool() function (which must be implemented by a
      performance tool) should be defined in the RTL as well to cover the case when
      the tool is not present in the address space of the process. This functionality
      is accomplished with weak symbols in Unices. Unfortunately, Windows does not
      support weak symbols.
      
      The solution in these changes is to grab the list of all modules loaded by the
      process and then search for symbol "ompt_tool()" within them. The function
      ompt_tool_windows() performs the search of the ompt_tool symbol. If ompt_tool is
      found, then its return value is used to initialize the tool. If ompt_tool is not
      found, then ompt_tool_windows() returns NULL and OMPT is thus, disabled.
      
      While doing these changes, the OMPT_SUPPORT detection in CMake was changed to
      test for the required featuers for OMPT_SUPPORT, namely: builtin_frame_address()
      existence, weak attribute existence and psapi.dll existence. For
      LIBOMP_HAVE_OMPT_SUPPORT to be true, it must be that the builtin_frame_address()
      intrinsic exists AND one of: either weak attributes exist or psapi.dll exists.
      
      Also, since Process Status API is used I had to add new dependency -- psapi.dll
      to the library dependency micro test.
      
      Differential Revision: http://reviews.llvm.org/D14027
      
      llvm-svn: 251654
      69e596a5
  5. Sep 21, 2015
    • Jonathan Peyton's avatar
      [OMPT] Overhaul OMPT initialization interface · 82a13bf3
      Jonathan Peyton authored
      The OMPT specification has changed. This revision brings the LLVM OpenMP
      implementation up to date.
      
      Technical overview of changes:
      Previously, a public weak symbol ompt_initialize was called after the OpenMP
      runtime is initialized. The new interface calls a global weak symbol ompt_tool
      prior to initialization. If a tool is present, ompt_tool returns a pointer to
      a function that matches the signature for ompt_initialize. After OpenMP is 
      initialized the function pointer is called to initialize a tool.
      Knowing that OMPT will be enabled before initialization allows OMPT support to
      be initialized as part of initialization instead of back patching
      initialization of OMPT support after the fact.
      Post OpenMP initialization support has been generalized moves from
      ompt-specific.c into ompt-general.c, since the OMPT initialization logic is no
      longer implementation specific.
      
      Patch by John Mellor-Crummey
      
      Differential Revision: http://reviews.llvm.org/D12998
      
      llvm-svn: 248187
      82a13bf3
  6. Apr 29, 2015
Loading