This is an archive of the discontinued LLVM Phabricator instance.

[libc][docs] Update implementation status tables for Memory and String Functions.
Needs ReviewPublic

Authored by lntue on May 31 2023, 11:10 AM.

Details

Summary

Update implementation status tables for Memory and String Functions to include other targets.

Diff Detail

Event Timeline

lntue created this revision.May 31 2023, 11:10 AM
Herald added projects: Restricted Project, Restricted Project. · View Herald TranscriptMay 31 2023, 11:10 AM
lntue requested review of this revision.May 31 2023, 11:10 AM

In general, I think just listing every target architecture for every function is not scalable. I think we should separate platform independent implementations from platform specific implementations. The platform independent implementations are straightforward to list. We can include the tables only for platform specific implementations. For items like the optimized memory functions, I think we can say something like this:

Platform independent, tiny, byte-by-byte implementations of `memcpy`, ... are available for size sensitive embedded and bare-metal platforms. For performance sensitive use cases, optimized flavors for x86_64, aarch64 and riscv64 are also available.
libc/docs/strings.rst
56

What is barebone-aarch32?

69

Should this be aarch32 or the more popular term Arm32?

lntue marked 2 inline comments as done.May 31 2023, 12:01 PM

In general, I think just listing every target architecture for every function is not scalable. I think we should separate platform independent implementations from platform specific implementations. The platform independent implementations are straightforward to list. We can include the tables only for platform specific implementations. For items like the optimized memory functions, I think we can say something like this:

Platform independent, tiny, byte-by-byte implementations of `memcpy`, ... are available for size sensitive embedded and bare-metal platforms. For performance sensitive use cases, optimized flavors for x86_64, aarch64 and riscv64 are also available.

I think for the status page, we do need the list of currently available functions / entry points for each officially supported platform. It helps us to quickly identify holes in our entrypoints.txt files as you can see in the lists. As long as we keep the platform classification generic enough, I don't think it will grow too much more. And these tables should be updated whenever there are changes in entrypoints.txt files.

For further implementation / optimization details, we can totally add to another sections or pages, but I think they should be separated from our concrete supported entrypoints.txt status.

lntue updated this revision to Diff 527153.May 31 2023, 12:02 PM

Address comments

Could the listing be automated with a script + presubmit hook?

lntue added a comment.Jun 1 2023, 6:11 AM

Could the listing be automated with a script + presubmit hook?

That would be ideal. Do you suggestion of how it could be done?