From 723a3e746ab7f130d448343e6a7b61e146954b60 Mon Sep 17 00:00:00 2001 From: Joseph Huber Date: Mon, 20 Jan 2025 08:39:39 -0600 Subject: [PATCH] [OpenMP] Fix mispelled attribute and warning Summary: This is spelled `ompx_aligned_barrier` when used directly, but wasn't included in the list of known assumptions. Fix that so now th test works. --- llvm/lib/IR/Assumptions.cpp | 1 + offload/DeviceRTL/CMakeLists.txt | 1 - offload/DeviceRTL/include/Synchronization.h | 2 +- offload/test/jit/empty_kernel.inc | 4 ++-- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/llvm/lib/IR/Assumptions.cpp b/llvm/lib/IR/Assumptions.cpp index 27977d5d56b0..d1f8bcde53b2 100644 --- a/llvm/lib/IR/Assumptions.cpp +++ b/llvm/lib/IR/Assumptions.cpp @@ -108,4 +108,5 @@ StringSet<> llvm::KnownAssumptionStrings({ "omp_no_parallelism", // OpenMP 5.1 "ompx_spmd_amenable", // OpenMPOpt extension "ompx_no_call_asm", // OpenMPOpt extension + "ompx_aligned_barrier", // OpenMPOpt extension }); diff --git a/offload/DeviceRTL/CMakeLists.txt b/offload/DeviceRTL/CMakeLists.txt index 98b063a62530..099634e211e7 100644 --- a/offload/DeviceRTL/CMakeLists.txt +++ b/offload/DeviceRTL/CMakeLists.txt @@ -100,7 +100,6 @@ set(bc_flags -c -foffload-lto -std=c++17 -fvisibility=hidden -nocudalib -nogpulib -nogpuinc -nostdlibinc -fopenmp -fopenmp-cuda-mode -Wno-unknown-cuda-version -Wno-openmp-target - -Wno-unknown-assumption # TODO: Fix false-positive warning for ext_aligned_barrier -DOMPTARGET_DEVICE_RUNTIME -I${include_directory} -I${devicertl_base_directory}/../include diff --git a/offload/DeviceRTL/include/Synchronization.h b/offload/DeviceRTL/include/Synchronization.h index 96a2f8654e92..3205582e87b9 100644 --- a/offload/DeviceRTL/include/Synchronization.h +++ b/offload/DeviceRTL/include/Synchronization.h @@ -197,7 +197,7 @@ void threads(atomic::OrderingTy Ordering); /// (hence all threads in the block are "aligned"). Also perform a fence before /// and after the barrier according to \p Ordering. Note that the /// fence might be part of the barrier if the target offers this. -[[gnu::noinline, omp::assume("ext_aligned_barrier")]] void +[[gnu::noinline, omp::assume("ompx_aligned_barrier")]] void threadsAligned(atomic::OrderingTy Ordering); ///} diff --git a/offload/test/jit/empty_kernel.inc b/offload/test/jit/empty_kernel.inc index 43813891ccb6..72de3c140c07 100644 --- a/offload/test/jit/empty_kernel.inc +++ b/offload/test/jit/empty_kernel.inc @@ -33,9 +33,9 @@ int main(int argc, char** argv) { } // Check for an empty kernel (IR level) -// FIRST: define weak_odr {{.*}} void @__omp_offloading_{{.*}}_main +// FIRST: define weak_odr {{.*}} void @__omp_offloading_{{.*}}_main{{.*}} // FIRST-NEXT: ret void // Check for two empty kernels (IR level) -// SECOND: define weak_odr {{.*}} void @__omp_offloading_{{.*}}_main +// SECOND: define weak_odr {{.*}} void @__omp_offloading_{{.*}}_main{{.*}} // SECOND-NEXT: ret void