[Openmp-commits] [openmp] r284499 - Fix OpenMP 4.0 library build

Jonathan Peyton via Openmp-commits openmp-commits at lists.llvm.org
Tue Oct 18 10:39:07 PDT 2016


Author: jlpeyton
Date: Tue Oct 18 12:39:06 2016
New Revision: 284499

URL: http://llvm.org/viewvc/llvm-project?rev=284499&view=rev
Log:
Fix OpenMP 4.0 library build

Patch by Andrey Churbanov

Differential Revision: https://reviews.llvm.org/D25505

Modified:
    openmp/trunk/runtime/src/kmp.h
    openmp/trunk/runtime/src/kmp_tasking.c

Modified: openmp/trunk/runtime/src/kmp.h
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/src/kmp.h?rev=284499&r1=284498&r2=284499&view=diff
==============================================================================
--- openmp/trunk/runtime/src/kmp.h (original)
+++ openmp/trunk/runtime/src/kmp.h Tue Oct 18 12:39:06 2016
@@ -1746,8 +1746,13 @@ typedef struct kmp_disp {
         kmp_lock_t          *th_steal_lock;       // lock used for chunk stealing (8-byte variable)
     };
 #else
+#if KMP_STATIC_STEAL_ENABLED
+    kmp_lock_t              *th_steal_lock;       // lock used for chunk stealing (8-byte variable)
+    void* dummy_padding[1]; // make it 64 bytes on Intel(R) 64
+#else
     void* dummy_padding[2]; // make it 64 bytes on Intel(R) 64
 #endif
+#endif
 #if KMP_USE_INTERNODE_ALIGNMENT
     char more_padding[INTERNODE_CACHE_LINE];
 #endif

Modified: openmp/trunk/runtime/src/kmp_tasking.c
URL: http://llvm.org/viewvc/llvm-project/openmp/trunk/runtime/src/kmp_tasking.c?rev=284499&r1=284498&r2=284499&view=diff
==============================================================================
--- openmp/trunk/runtime/src/kmp_tasking.c (original)
+++ openmp/trunk/runtime/src/kmp_tasking.c Tue Oct 18 12:39:06 2016
@@ -576,9 +576,13 @@ __kmp_free_task( kmp_int32 gtid, kmp_tas
 static void
 __kmp_free_task_and_ancestors( kmp_int32 gtid, kmp_taskdata_t * taskdata, kmp_info_t * thread )
 {
+#if OMP_45_ENABLED
     // Proxy tasks must always be allowed to free their parents
     // because they can be run in background even in serial mode.
     kmp_int32 task_serial = taskdata->td_flags.task_serial && !taskdata->td_flags.proxy;
+#else
+    kmp_int32 task_serial = taskdata->td_flags.task_serial;
+#endif
     KMP_DEBUG_ASSERT( taskdata -> td_flags.tasktype == TASK_EXPLICIT );
 
     kmp_int32 children = KMP_TEST_THEN_DEC32( (kmp_int32 *)(& taskdata -> td_allocated_child_tasks) ) - 1;




More information about the Openmp-commits mailing list