Skip to content
  1. Mar 06, 2017
  2. Feb 28, 2017
    • Jonathan Peyton's avatar
      Removing couple unnecessary architecture guards. · 928b8ea2
      Jonathan Peyton authored
      This section of code (__kmp_test_then_* functions) is guarded by
      (KMP_ARCH_X86 || KMP_ARCH_X86_64) so it does not make sense to have other
      architecture guards inside this section.  Non-x86 architectures always
      use intrinsics (__sync_*)
      
      llvm-svn: 296525
      928b8ea2
  3. Feb 24, 2017
    • Michal Gorny's avatar
      [test] Try to link -latomic to provide atomics when available · 018d1359
      Michal Gorny authored
      When using -rtlib=libgcc, the fallback implementation of __atomic_*
      builtins is provided via libatomic (included in GCC). However, neither
      GCC itself nor clang link libatomic implicitly, and it seems that GCC
      upstream expects projects to link it explicitly as necessary.
      
      Since compiler-rt provides __atomic_* builtins directly in the main
      library, check if they are provided by the default libraries first.
      If they are not, check if -latomic is available to provide them
      and add explicit -latomic for tests in this case.
      
      This fixes unresolved __atomic_load() references when running openmp
      tests on i386 with libgcc backend.
      
      Differential Revision: https://reviews.llvm.org/D30083
      
      llvm-svn: 296183
      018d1359
  4. Feb 22, 2017
  5. Feb 17, 2017
  6. Feb 16, 2017
  7. Feb 15, 2017
  8. Feb 06, 2017
  9. Jan 30, 2017
  10. Jan 27, 2017
  11. Jan 18, 2017
  12. Jan 12, 2017
    • Jonas Hahnfeld's avatar
      kmp_affinity: Fix check if specific bit is set · c9a8a6c0
      Jonas Hahnfeld authored
      Clang 4.0 trunk warns:
      warning: logical not is only applied to the left hand side of this bitwise operator [-Wlogical-not-parentheses]
      
      This points to a potential bug if the code really wants to check if the single
      bit is not set: If for example (buf.edx >> 9) = 2 (has any bit set except the
      least significant one), 'logical not' will return 0 which stays 0 after the
      'bitwise and'.
      To do this correctly we first need to evaluate the 'bitwise and'. In that case
      it returns 2 & 1 = 0 which after the 'logical not' evaluates to 1.
      
      Differential Revision: https://reviews.llvm.org/D28599
      
      llvm-svn: 291764
      c9a8a6c0
  13. Jan 04, 2017
  14. Dec 21, 2016
  15. Dec 15, 2016
  16. Dec 14, 2016
  17. Dec 08, 2016
  18. Dec 01, 2016
  19. Nov 28, 2016
  20. Nov 21, 2016
  21. Nov 14, 2016
    • Jonathan Peyton's avatar
      Update stats-gathering code · 5375fe82
      Jonathan Peyton authored
      Have developer timers use partitioning scheme which also required that some
      redundant developer timers be removed in favor of the already existing normal
      timers. Move per thread stats initialization to just after global thread id
      assignment which is as early as possible. Also put all global stats
      initialization code in __kmp_stats_init() and all global stats destruction code
      in __kmp_stats_fini().
      
      Differential Revision: https://reviews.llvm.org/D26361
      
      llvm-svn: 286892
      5375fe82
    • Jonathan Peyton's avatar
      Introduce dynamic affinity dispatch capabilities · 1cdd87ad
      Jonathan Peyton authored
      This set of changes enables the affinity interface (Either the preexisting
      native operating system or HWLOC) to be dynamically set at runtime
      initialization. The point of this change is that we were seeing performance
      degradations when using HWLOC. This allows the user to use the old affinity
      mechanisms which on large machines (>64 cores) makes a large difference in
      initialization time.
      
      These changes mostly move affinity code under a small class hierarchy:
      
      KMPAffinity
        class Mask {}
      KMPNativeAffinity : public KMPAffinity
        class Mask : public KMPAffinity::Mask
      KMPHwlocAffinity
        class Mask : public KMPAffinity::Mask
      
      Since all interface functions (for both affinity and the mask implementation)
      are virtual, the implementation can be chosen at runtime initialization.
      
      Differential Revision: https://reviews.llvm.org/D26356
      
      llvm-svn: 286890
      1cdd87ad
  22. Nov 10, 2016
  23. Nov 07, 2016
    • Jonas Hahnfeld's avatar
      [OpenMP] Enable ThreadSanitizer to check OpenMP programs · 50fed047
      Jonas Hahnfeld authored
      This patch allows ThreadSanitizer (Tsan) to verify OpenMP programs.
      It means that no false positive will be reported by Tsan when
      verifying an OpenMP programs.
      This patch introduces annotations within the OpenMP runtime module to
      provide information about thread synchronization to the Tsan runtime.
      
      In order to enable the Tsan support when building the runtime, you must
      enable the TSAN_SUPPORT option with the following environment variable:
      
      -DLIBOMP_TSAN_SUPPORT=TRUE
      
      The annotations will be enabled in the main shared library
      (same mechanism of OMPT).
      
      Patch by Simone Atzeni and Joachim Protze!
      
      Differential Revision: https://reviews.llvm.org/D13072
      
      llvm-svn: 286115
      50fed047
  24. Nov 03, 2016
  25. Nov 02, 2016
  26. Nov 01, 2016
  27. Oct 27, 2016
  28. Oct 26, 2016
Loading