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

Alexey Bataev via cfe-commits cfe-commits at lists.llvm.org
Wed Feb 22 20:15:02 PST 2017


Yes, approved

Best regards,
Alexey Bataev

> 23 февр. 2017 г., в 1:00, Hans Wennborg <hans at chromium.org> написал(а):
> 
> Alexey: ping?
> 
>> On Tue, Feb 21, 2017 at 11:07 AM, Hans Wennborg <hans at chromium.org> wrote:
>> 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