This adds a more fine-grained list of OpenMP features with their
implementation status and associated reviews/commits.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
The scheme itself looks good in general. Just as an improvement, it would be good to use coloring for the feature status.
Also, what's the difference between claimed, mostly done and done?
clang/docs/OpenMPSupport.rst | ||
---|---|---|
153 ↗ | (On Diff #208530) | I'm working on this feature, but don't know when it's going to be ready. |
219 ↗ | (On Diff #208530) | Do we really need Fortran stuff here? |
237 ↗ | (On Diff #208530) | Not sure 100%, but seems to me it is not done. |
Good. Once we agreed on a scheme we can improve the actual process, excel sheet, generator script, etc. (see also below).
Just as an improvement, it would be good to use coloring for the feature status.
I'll try to add coloring.
Also, what's the difference between claimed, mostly done and done?
Disclaimer: I used a script to determine what the columns in the excel document mean. There is a good chance I got some wrong and it only reflects the information in the document.
I basically used the following logic in this order:
- If all non-empty columns contain the word "done", mark it as "done".
- If all non-empty columns contain "mostly complete", mark it as "mostly done".
- If there are non-empty columns, mark it as "claimed", e.g., someone is working on it.
- If there are only empty columns, mark it as "unclaimed", e.g., not being worked on right now.
I think when we go through the excel document now with this use case in mind and fill the empty columns appropriately, some errors will dissapear.
clang/docs/OpenMPSupport.rst | ||
---|---|---|
153 ↗ | (On Diff #208530) | That will then be noted in the excel sheet (see general comment). |
219 ↗ | (On Diff #208530) | No, I already filtered by hand, my mistake. Will automate it. |
Ok, I see. I will provide more correct feature status tomorrow, if you want. Currently it is not quite correct/full.
Nice, thank you for working on this!
It would be also good to have a not OpenMP-5 specific, but an overview table - which OpenMP thingy was supported starting
with which Clang version, very much like https://clang.llvm.org/cxx_status.html / https://libcxx.llvm.org/cxx1z_status.html,
i needed that a few times.
clang/docs/OpenMPSupport.rst | ||
---|---|---|
161 ↗ | (On Diff #208530) | Done |
163 ↗ | (On Diff #208530) | Done |
175–177 ↗ | (On Diff #208530) | I don't remember anything related to these items. Seems to me, they are unclaimed |
201 ↗ | (On Diff #208530) | Seems to me it is unclaimed |
205 ↗ | (On Diff #208530) | Can't find this in the standard. |
207 ↗ | (On Diff #208530) | Done. |
213 ↗ | (On Diff #208530) | Done |
215 ↗ | (On Diff #208530) | Done |
233 ↗ | (On Diff #208530) | Done |
243 ↗ | (On Diff #208530) | This is just the runtime part, the compiler does not support this |
245–247 ↗ | (On Diff #208530) | Not sure that there are special requirements for this in the standard |
249 ↗ | (On Diff #208530) | lambdas are supported. |
clang/docs/OpenMPSupport.rst | ||
---|---|---|
205 ↗ | (On Diff #208530) | Section 2.12.7 |
233 ↗ | (On Diff #208530) | Do we support the behavior in 318:7-14? |
237 ↗ | (On Diff #208530) | I think we still need the codegen patch and I am not sure about the runtime part. |
243 ↗ | (On Diff #208530) | Since it is a hint according to the specification, I guess it is up to us whether we want to declare this feature done or not. If we do that, we should mention it in the limitation section. |
clang/docs/OpenMPSupport.rst | ||
---|---|---|
205 ↗ | (On Diff #208530) | Then it is unclaimed, I think. |
233 ↗ | (On Diff #208530) | Yes. |
237 ↗ | (On Diff #208530) | I don't think it works with unified memory since we don't fully support unified memory. |
243 ↗ | (On Diff #208530) | Still, compiler does not use this. WE can mark this as partial, but definitely not done. |
I will update the table (hopefully tomorrow) and we can then see if we commit it and change it in-place or if we have more initial feedback.
Thanks everyone for providing all this information!
@lebedev.ri I'd like to see if we can transition this one into a more generic one with version numbers etc. Is that OK?
clang/docs/OpenMPSupport.rst | ||
---|---|---|
163 ↗ | (On Diff #208530) | Here and above, if there are more revisions, please feel free to add them. |
165 ↗ | (On Diff #208530) | Is there anything upstreamed? What should I put for status and revisions/reviews? |
205 ↗ | (On Diff #208530) | The excel sheet did assign some of the claimed tasks to people/companies so I will keep them claimed for now and we should ask if they are actually being worked on or not. |
207 ↗ | (On Diff #208530) | I only found a 2017 patch which I added but is this completely done? The category suggest this is device related but I did not find device related code. |
clang/docs/OpenMPSupport.rst | ||
---|---|---|
207 ↗ | (On Diff #208530) | Ah, I missed that this is device extension. Then it is unclaimed. |
clang/docs/OpenMPSupport.rst | ||
---|---|---|
198 ↗ | (On Diff #209073) | Change OMP_TARGET_FALLBACK to OMP_TARGET_OFFLOAD which is in the spec. |
clang/docs/OpenMPSupport.rst | ||
---|---|---|
250 ↗ | (On Diff #209089) | I think this should say partial, it's present in libomp after D55078. |
198 ↗ | (On Diff #209073) | This is done, see the linked revision. |
165 ↗ | (On Diff #208530) | I don't think there's a review yet. @protze.joachim ? |
I'll add @Hahnfeld comments, anything else? If not, can someone approve this and we do separate reviews for improvements?
clang/docs/OpenMPSupport.rst | ||
---|---|---|
222–226 ↗ | (On Diff #212957) | Do we have CodeGen for this? I only remember Sema support... Also, reverse_offload is listed again below as unclaimed. |
250 ↗ | (On Diff #209089) | ping, I still think partial is more correct |
233 ↗ | (On Diff #208530) | ping @jdoerfert |
clang/docs/OpenMPSupport.rst | ||
---|---|---|
222–226 ↗ | (On Diff #212957) | We don't have codegen for this. Same for the reverse_offload and atomic_default_mem_order |
clang/docs/OpenMPSupport.rst | ||
---|---|---|
222–226 ↗ | (On Diff #212957) | As Alexey said codegen is not done so maybe change it to partial. |
clang/docs/OpenMPSupport.rst | ||
---|---|---|
204 ↗ | (On Diff #217631) | This feature is implemented already |
clang/docs/OpenMPSupport.rst | ||
---|---|---|
204 ↗ | (On Diff #217631) | If we wait longer, we can always update this patch. Maybe we should upstream it and update it online. |
LG
clang/docs/OpenMPSupport.rst | ||
---|---|---|
204 ↗ | (On Diff #217631) | Add the latest info and commit it. |
clang/docs/OpenMPSupport.rst | ||
---|---|---|
204 ↗ | (On Diff #217631) | Agreed. |
clang/docs/OpenMPSupport.rst | ||
---|---|---|
165 ↗ | (On Diff #208530) | There is no review yet. Implementation is available in |