r295473 - [OpenMP] Remove barriers at cancel and cancellation point

Hans Wennborg via cfe-commits cfe-commits at lists.llvm.org
Tue Feb 21 11:07:48 PST 2017


I'm Ok with it if Alexey approves.

On Fri, Feb 17, 2017 at 10:52 AM, Hahnfeld, Jonas
<Hahnfeld at itc.rwth-aachen.de> wrote:
> Hi Hans, Alexey,
>
> can we merge this commit and r295474 for the 4.0 release or is it already
> too late for that? I will totally understand that and can apply these
> commits locally prior to installing.
> However, I think that these changes are quite focussed and bear minimal
> possibility of introducing regressions.
>
> Thanks,
> Jonas
>
> Am Freitag, den 17.02.2017, 18:32 +0000 schrieb Jonas Hahnfeld via
> cfe-commits:
>
> Author: hahnfeld
> Date: Fri Feb 17 12:32:51 2017
> New Revision: 295473
>
> URL: http://llvm.org/viewvc/llvm-project?rev=295473&view=rev
> Log:
> [OpenMP] Remove barriers at cancel and cancellation point
>
> This resolves a deadlock with the cancel directive when there is no explicit
> cancellation point. In that case, the implicit barrier acts as cancellation
> point. After removing the barrier after cancel, the now unmatched barrier
> for
> the explicit cancellation point has to go as well.
>
> This has probably worked before rL255992: With the calls for the explicit
> barrier, it was sure that all threads passed a barrier before exiting.
>
> Reported by Simon Convent and Joachim Protze!
>
> Differential Revision: https://reviews.llvm.org/D30088
>
> Modified:
>     cfe/trunk/lib/CodeGen/CGOpenMPRuntime.cpp
>     cfe/trunk/test/OpenMP/cancel_codegen.cpp
>     cfe/trunk/test/OpenMP/cancellation_point_codegen.cpp


More information about the cfe-commits mailing list