| | 1 | == Optimizing zlib for ARM |
| | 2 | ''by Adenilson Cavalcanti <cavalcantii@gmail.com>'' |
| | 3 | |
| | 4 | - People ship old libpng versions |
| | 5 | - libpng, zlib developed around same time |
| | 6 | - NEON simd - mandatory in ARMv8 |
| | 7 | - checksums easily optimized with simd instructions by checking sums of elements in blocks. |
| | 8 | - adler32, inffast, libpng w/ pallete improved |
| | 9 | - 10% - 10x faster |
| | 10 | - work being done to optimize zlib is easier than convincing everyone to upstream their work. |
| | 11 | - especially in projects like chromium, which have many copies of zlib |
| | 12 | - upstreaming optimizations to chromium caused armv6 project to try to use NEON, which broke it |
| | 13 | - security fixes in addition to optimizations exist in chromium's zlib |