[Openmp-commits] [openmp] c17e40b - [OpenMP] Fix dynamic schedule assertion failure on AArch64

Nawrin Sultana via Openmp-commits openmp-commits at lists.llvm.org
Thu Jan 12 12:44:18 PST 2023


Author: Nawrin Sultana
Date: 2023-01-12T14:43:54-06:00
New Revision: c17e40ba52f3946baec60c3b5feb182e6b3faefe

URL: https://github.com/llvm/llvm-project/commit/c17e40ba52f3946baec60c3b5feb182e6b3faefe
DIFF: https://github.com/llvm/llvm-project/commit/c17e40ba52f3946baec60c3b5feb182e6b3faefe.diff

LOG: [OpenMP] Fix dynamic schedule assertion failure on AArch64

This patch fixes assertion failure in dynamic schedule with 8 byte induction
variable. It uses acquire load instead of relaxed to ensure that steal_lock
pointer is not NULL.

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

Added: 
    

Modified: 
    openmp/runtime/src/kmp_dispatch.cpp

Removed: 
    


################################################################################
diff  --git a/openmp/runtime/src/kmp_dispatch.cpp b/openmp/runtime/src/kmp_dispatch.cpp
index c8c8ff8065fc8..b9dec59b8e694 100644
--- a/openmp/runtime/src/kmp_dispatch.cpp
+++ b/openmp/runtime/src/kmp_dispatch.cpp
@@ -1289,7 +1289,7 @@ int __kmp_dispatch_next_algorithm(int gtid,
               break;
             }
           }
-          if (KMP_ATOMIC_LD_RLX(&v->steal_flag) != READY ||
+          if (KMP_ATOMIC_LD_ACQ(&v->steal_flag) != READY ||
               v->u.p.count >= (UT)v->u.p.ub) {
             pr->u.p.parm4 = (victimId + 1) % nproc; // shift start victim tid
             continue; // no chunks to steal, try next victim


        


More information about the Openmp-commits mailing list