This is an archive of the discontinued LLVM Phabricator instance.

[OpenMP] Remove barriers at cancel and cancellation point
ClosedPublic

Authored by Hahnfeld on Feb 17 2017, 4:08 AM.

Details

Summary

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!

Diff Detail

Repository
rL LLVM

Event Timeline

Hahnfeld created this revision.Feb 17 2017, 4:08 AM
This revision is now accepted and ready to land.Feb 17 2017, 5:26 AM
This revision was automatically updated to reflect the committed changes.