[llvm-bugs] [Bug 37737] New: taskgroup surrounding a taskloop

via llvm-bugs llvm-bugs at lists.llvm.org
Thu Jun 7 09:10:58 PDT 2018


            Bug ID: 37737
           Summary: taskgroup surrounding a taskloop
           Product: OpenMP
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Clang Compiler Support
          Assignee: unassignedclangbugs at nondot.org
          Reporter: protze at itc.rwth-aachen.de
                CC: llvm-bugs at lists.llvm.org

When working on the OMPT events for taskloops, we reallized that currently the
clang compiler creates two nested taskgroups for an OpenMP taskloop. 

The test case is at the end of this phabricator review:

In case there is no `nogroup` clause present, the compiler adds a
`__kmpc_taskgroup` call before the `__kmpc_taskloop` call and then passes 0 to
the nogroup argument of the `__kmpc_taskloop` call. The runtime internally also
calls `__kmpc_taskgroup` in the case that `nogroup==0`. This leads to the two
nested taskgroups, we observed.

This is the current interface documentation on __kmpc_taskloop:
@param nogroup   Flag, 1 if nogroup clause specified, 0 otherwise

While this is not a correctness issue, it might improve the performance if we
remove one taskgroup.

I see 2 solutions:
- clang does not create the __kmpc_taskgroup calls (like icc does)
- clang passes always `nogroup=1`, and we update the interface documentation
@param nogroup   Flag, 1 if no taskgroup needs to be added, 0 otherwise

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/20180607/ebfd78fc/attachment.html>

More information about the llvm-bugs mailing list