[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