[Openmp-dev] potential OpenMP library back ports for 3.9.1

Jack Howarth via Openmp-dev openmp-dev at lists.llvm.org
Mon Oct 31 06:14:18 PDT 2016


Jonathan,
      Do any of these commits merit back porting to openmp 3.9 branch
for the 3.9.1 release?
                 Jack

Author: hahnfeld
Date: Mon Aug  8 05:08:07 2016
New Revision: 277991

URL: http://llvm.org/viewvc/llvm-project?rev=277991&view=rev
Log:
__kmp_free_task: Fix for serial explicit tasks producing proxy tasks

Consider the following code which may be executed by a serial team:

    int dep;
    #pragma omp target nowait depend(out: dep)
    {
        sleep(1);
    }
    #pragma omp task depend(in: dep)
    {
        #pragma omp target nowait
        {
            sleep(1);
        }
    }

Here the explicit task may not be freed until the nested proxy task has
finished. The current code hasn't considered this and called __kmp_free_task
anyway which triggered an assert because of remaining incomplete children:

    KMP_DEBUG_ASSERT( TCR_4(taskdata->td_incomplete_child_tasks) == 0 );

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

------------------------

Author: hahnfeld
Date: Mon Aug  8 05:08:14 2016
New Revision: 277992

URL: http://llvm.org/viewvc/llvm-project?rev=277992&view=rev
Log:
Do not block on explicit task depending on proxy task

Consider the following code:

    int dep;
    #pragma omp target nowait depend(out: dep)
    {
        sleep(1);
    }
    #pragma omp task depend(in: dep)
    {
        printf("Task with dependency\n");
    }
    printf("Doing some work...\n");

In its current state the runtime will block on the second task and not
continue execution.

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

------------------------

Author: achurbanov
Date: Thu Oct 27 06:43:07 2016
New Revision: 285283

URL: http://llvm.org/viewvc/llvm-project?rev=285283&view=rev
Log:
Fixed a memory leak related to task dependencies.

Differential Revision: http://reviews.llvm.org/D25504

Patch by Alex Duran.


More information about the Openmp-dev mailing list