This is an archive of the discontinued LLVM Phabricator instance.

[Flang][OpenMP][Sema] Module support for REQUIRES directive
Needs ReviewPublic

Authored by skatrak on Aug 17 2023, 3:35 AM.

Details

Summary

This patch adds support for passing REQUIRES clauses across Fortran modules via USE statements through changes to directive resolution, the directive rewrite pass and semantics checks. .mod files are also extended to include !$omp requires directives so this information can be parsed from external modules and added to the module's symbol.

This is patch 5/5 of a series splitting D149337 to simplify review.

Depends on D158096.

Diff Detail

Event Timeline

skatrak created this revision.Aug 17 2023, 3:35 AM
Herald added projects: Restricted Project, Restricted Project. · View Herald Transcript
skatrak requested review of this revision.Aug 17 2023, 3:35 AM
skatrak updated this revision to Diff 552325.Aug 22 2023, 5:57 AM

Update patch to integrate with parent's changes.

skatrak updated this revision to Diff 557239.Sep 22 2023, 6:06 AM

Rebase, ready for review.

Looking at the stack, this is the only patch in the series that hasn't been concluded yet. Is this patch isolated and still required? Also has work related to this patch already been merged partially from the other patches?

skatrak updated this revision to Diff 558194.Thu, Nov 30, 2:52 AM

Rebase patch and simplify implementation.

Looking at the stack, this is the only patch in the series that hasn't been concluded yet. Is this patch isolated and still required? Also has work related to this patch already been merged partially from the other patches?

Thanks Akash for giving this a look. This patch is necessary in order to be able to import REQUIRES clauses across Fortran module boundaries, which is currently not supported.

I just updated the patch, since it's been open for a while, and also took the opportunity to simplify the implementation. Hopefully it should be in good shape to be reviewed now.