This is an archive of the discontinued LLVM Phabricator instance.

[OpenMP] Do not SPMDize generic regions with no parallel
AcceptedPublic

Authored by jhuber6 on Sep 8 2021, 7:54 AM.

Details

Summary

This patch changes SPMDization to not trigger for regions with no
parallelism. Otherwise, this will introduce unnecessary barriers that
will slow the single-threaded region down.

Diff Detail

Event Timeline

jhuber6 created this revision.Sep 8 2021, 7:54 AM
jhuber6 requested review of this revision.Sep 8 2021, 7:54 AM
Herald added a project: Restricted Project. · View Herald TranscriptSep 8 2021, 7:54 AM
jdoerfert accepted this revision.Sep 8 2021, 8:48 AM

LG, one nit

llvm/lib/Transforms/IPO/OpenMPOpt.cpp
602

doxygen documentation, maybe mayContainParallelRegion

This revision is now accepted and ready to land.Sep 8 2021, 8:48 AM
jhuber6 updated this revision to Diff 371353.Sep 8 2021, 8:50 AM

Addressing nit.

This revision was automatically updated to reflect the committed changes.

This broke stuff because the Mode is now replaced with SPMD while we actually don't change the _exec_mode of the kernel. Will fix it.

jdoerfert reopened this revision.Oct 7 2021, 8:01 PM

@jhuber6 Can you revert this one for now. Easiest is a new mode I guess. I don't see a good alternative right now.

This revision is now accepted and ready to land.Oct 7 2021, 8:01 PM