This is an archive of the discontinued LLVM Phabricator instance.

Fix for OMP_PROC_BIND=spread strategy
ClosedPublic

Authored by tlwilmar on May 23 2016, 1:23 PM.

Details

Summary

The OMP_PROC_BIND=spread strategy fails to assign the master thread the correct place partition after the first parallel region. Other threads in the hot team will remember their place_partition, but the master's place partition is restored to what it was before entering the parallel region. So when the hot team is used for subsequent parallel regions, the master has lost this info. This fix calls __kmp_partition_places to update only the master thread's place partition in the spread case when there are no other changes to the hot team.

Diff Detail

Repository
rL LLVM

Event Timeline

tlwilmar updated this revision to Diff 58143.May 23 2016, 1:23 PM
tlwilmar retitled this revision from to Fix for OMP_PROC_BIND=spread strategy.
tlwilmar updated this object.
tlwilmar set the repository for this revision to rL LLVM.
tlwilmar added a subscriber: openmp-commits.
tlwilmar updated this object.May 23 2016, 1:26 PM
AndreyChurbanov accepted this revision.May 25 2016, 9:37 AM
AndreyChurbanov edited edge metadata.

LGTM

This revision is now accepted and ready to land.May 25 2016, 9:37 AM
This revision was automatically updated to reflect the committed changes.