-
Notifications
You must be signed in to change notification settings - Fork 13.5k
[Flang][OpenMP] Important issues to be fixed prior to removing experimental status of OpenMP #110008
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
|
Feel free to update the tasklist if you or someone you know is working on it. The immediate requirement is to only add a TODO message after parsing and semantics. |
I find it strange that a standard version released after flang got merged into LLVM is somehow a deciding factor for whether the whole compiler is considered incomplete or experimental. It sounds like massive scope creep, in the sense that, when flang was proposed for inclusion, no-one could have required an unreleased standard as the benchmark for what counts as a full-fledged fortran compiler. |
We started with OpenMP 4.5 standard when it was the F18 project. Subsequently, we have added OpenMP 5.2 features to the implementation. What I would like to get to is to be able to make statements on what is supported and what is not supported. Since some OpenMP 5.2 features are added the only standard that we can aim to completely address is OpenMP 5.2. Also, I am not saying we have to support all OpenMP 5.2 features. The requirement is only to issue messages and gracefully error that the feature is not supported as the rest of the compiler says for Fortran language features. Also, this is not a requirement for the whole of the compiler, it is only about the experimental nature of the OpenMP implementation. |
Additional tests and small OpenMP.cpp changes available to review here: I will continue this work, but this seemed like a good place to stop for today, and may start reviewing this part. |
Should we also include fixing (at least some) compiler crash tickets before removing the experimental warning? |
If there are important issues please add it to the following entry. I have not yet managed to go through all the issues in the tracker and hence that section is empty. May be I will populate with a subset of entries from issues with label
|
I have added some, striking an opinionated balance between adding the whole issue tracker and missing important issues. If others disagree with my prioritization of those issues or would like to add more please go ahead. |
I have moved it to the |
reduction modifier MLIR support under review: #114737 |
I would like to claim: "present argument for defaultmap" from the 5.2 list, I've started a bit of work towards supporting defaultmap and i'll finish it up in the nearish future once I can spare a bit more time towards it :-) Edit: Added myself to the list for that item |
…#127769) Issue: - Single construct used to throw a semantic error for copyprivate and nowait clause when used in the single directive. - Also, the copyprivate with nowait restriction has been removed from OpenMP 6.0 Fix: - Allow copyprivate and nowait on both single and end single directive - Allow at most one nowait clause - Throw a warning when the same list item is used in the copyprivate clause on the end single directive From Reference guide (OpenMP 5.2, 2.10.2): ``` !$omp single [clause[ [,]clause] ... ] loosely-structured-block !$omp end single [end-clause[ [,]end-clause] ...] clause: copyprivate (list) nowait [...] end-clause: copyprivate (list) nowait ``` Towards: #110008
…ive clauses (#127769) Issue: - Single construct used to throw a semantic error for copyprivate and nowait clause when used in the single directive. - Also, the copyprivate with nowait restriction has been removed from OpenMP 6.0 Fix: - Allow copyprivate and nowait on both single and end single directive - Allow at most one nowait clause - Throw a warning when the same list item is used in the copyprivate clause on the end single directive From Reference guide (OpenMP 5.2, 2.10.2): ``` !$omp single [clause[ [,]clause] ... ] loosely-structured-block !$omp end single [end-clause[ [,]end-clause] ...] clause: copyprivate (list) nowait [...] end-clause: copyprivate (list) nowait ``` Towards: llvm/llvm-project#110008
…llvm#127769) Issue: - Single construct used to throw a semantic error for copyprivate and nowait clause when used in the single directive. - Also, the copyprivate with nowait restriction has been removed from OpenMP 6.0 Fix: - Allow copyprivate and nowait on both single and end single directive - Allow at most one nowait clause - Throw a warning when the same list item is used in the copyprivate clause on the end single directive From Reference guide (OpenMP 5.2, 2.10.2): ``` !$omp single [clause[ [,]clause] ... ] loosely-structured-block !$omp end single [end-clause[ [,]end-clause] ...] clause: copyprivate (list) nowait [...] end-clause: copyprivate (list) nowait ``` Towards: llvm#110008
TODOs for unsupported OpenMP 5.2 features
TODOs for unsupported OpenMP 4.5 features
TODOs for unsupported OpenMP 4.0 features
Must fix issues from the tracker
A subset of issues from https://github.com/llvm/llvm-project/issues?q=is%3Aopen+is%3Aissue+label%3Aflang%3Aopenmp
Must fix issues not in tracker
Minor bugs:
implicit none
: [flang][OpenMP]Flang crashes with implicit none and undeclared variables #131655The text was updated successfully, but these errors were encountered: