Make a 1.0 release of cortex-strings
We've been working on a set of string routines hand-optimised for the A8 and A9. As the first step in getting these upstream, complete the routines and do a 1.0 release.
Follow up blueprints use this 1.0 release as a base to get the routines into the different C libraries.
Blueprint information
- Status:
- Complete
- Approver:
- Michael Hope
- Priority:
- High
- Drafter:
- Michael Hope
- Direction:
- Approved
- Assignee:
- Michael Hope
- Definition:
- Approved
- Series goal:
- Accepted for trunk
- Implementation:
- Implemented
- Milestone target:
- 2011.09
- Started by
- Michael Hope
- Completed by
- Michael Hope
Related branches
Related bugs
Sprints
Whiteboard
Headline: First release of cortex-strings, a set of hand-optimised string routines for Cortex-A processors
Acceptance: standard release procedure run and a tarball released via Launchpad
Checklist (too small to be work items):
Builds: DONE
No warnings or errors[1]: DONE
All files are covered by Makefile.am: DONE
NEON on by default but can be disabled: DONE
'make check' works: DONE
'make distcheck' works: DONE
'make add-on' works: DONE
Check proper type sizes on all implementations: DONE
Change to the GLIBC coding style: DONE
Performance summary:
OK: memchr memset strchr strcpy strlen memcpy
No good: strcmp
Note that strchr is good for 16 bytes and less.
Tweaks:
memchr between 8 and 16 bytes.
memset for < 128 bytes
strchr between 16 and 32 bytes
strlen being erratic on Panda for large sizes
[1] dhry and the reference code show warnings.
[asac, Sep 14, 2011]: please expand summmary, headline and acceptance criteria to make it easier to understand what this is about.
Work Items
Work items:
Flatten out strcmp and strcpy to Thumb-2 only: TODO
Check and document the licensing: DONE
Add and check the test cases: DONE
Benchmark and show the differences vs the other C libraries: DONE
Test the add on generator: TODO
Release a 1.0 of cortex-strings to base on: TODO
Dependency tree
* Blueprints in grey have been implemented.