This is an archive of the discontinued LLVM Phabricator instance.

[OpenMP][OMPIRBuilder] Add support for order(concurrent) to OMPIRBuilder for SIMD directive
ClosedPublic

Authored by domada on Sep 16 2022, 7:09 AM.

Details

Summary

If order(concurrent) clause is specified, then the iterations of SIMD loop can be executed concurrently.

This patch adds support for LLVM IR codegen via OMPIRBuilder for SIMD loop with order(concurrent) clause. The functionality added to OMPIRBuilder is similar to the functionality implemented in CodeGenFunction::EmitOMPSimdInit.

Diff Detail

Event Timeline

domada created this revision.Sep 16 2022, 7:09 AM
Herald added a project: Restricted Project. · View Herald Transcript
domada requested review of this revision.Sep 16 2022, 7:09 AM
Herald added a reviewer: dcaballe. · View Herald Transcript
Herald added projects: Restricted Project, Restricted Project, Restricted Project. · View Herald Transcript
domada updated this revision to Diff 464648.Oct 3 2022, 3:57 AM
domada retitled this revision from [OpenMP] Add support for order(concurrent) to OMPIRBuilder for SIMD directive to [OpenMP][OMPIRBuilder] Add support for order(concurrent) to OMPIRBuilder for SIMD directive.

Patch rebased

I think the rest looks good.

llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
213

I think this belongs into llvm/include/llvm/Frontend/OpenMP/OMPConstants.h either explicitly or via the llvm/Frontend/OpenMP/OMPKinds.def logic.

domada updated this revision to Diff 464952.Oct 4 2022, 4:23 AM

Remove custom enum for mapping order(concurrent)

This revision is now accepted and ready to land.Oct 4 2022, 5:42 AM