[llvm-bugs] [Bug 52010] New: Wrong number of dependencies when using OpenMP iterator()

via llvm-bugs llvm-bugs at lists.llvm.org
Wed Sep 29 04:02:56 PDT 2021


https://bugs.llvm.org/show_bug.cgi?id=52010

            Bug ID: 52010
           Summary: Wrong number of dependencies when using OpenMP
                    iterator()
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: OpenMP
          Assignee: unassignedclangbugs at nondot.org
          Reporter: rpenacob at bsc.es
                CC: llvm-bugs at lists.llvm.org, rofirrim at gmail.com

In the following test case kmp_depend_info array size and the number of
dependencies passed to __kmpc_omp_task_with_deps is wrongly computed.

// t1.c
int x[100];
int y[100];
void foo() {
    #pragma omp task depend(iterator(j=0:5), in: x[j], y[j])
    {
    }
}
void bar() {
    #pragma omp task depend(iterator(j=0:5), in: x[j]) depend(iterator(j=0:5),
in: y[j])
    {
    }
}


Looking at the IR code with : clang -fopenmp -S -emit-llvm t1.c 

; Size 5, but it is 5*2 = 10
define dso_local void @foo() #0 {
  ...
  %vla = alloca %struct.kmp_depend_info, i64 5, align 16
  %28 = call i32 @__kmpc_omp_task_with_deps(%struct.ident_t* @1, i32 %0, i8*
%1, i32 5, i8* %27, i32 0, i8* null)

}

; Size 25, but it is 10
define dso_local void @bar() #0 {
...
  %vla = alloca %struct.kmp_depend_info, i64 25, align 16
  %32 = call i32 @__kmpc_omp_task_with_deps(%struct.ident_t* @1, i32 %0, i8*
%1, i32 25, i8* %31, i32 0, i8* null)
}

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20210929/eb76ebb5/attachment.html>


More information about the llvm-bugs mailing list