{"push_id":2736734317,"size":3,"distinct_size":3,"ref":"refs/heads/lineage-15.1","head":"1c1020f9fc49d1d9b89dfa56efa786692884b677","before":"93040f733bb4702d84969f2ff7d2bbef6dfb6c76","commits":[{"sha":"b4c172d4099a4c19634b9e8af01219e2a46d7f60","author":{"name":"Joe Maples","email":"16a9a54ddf4259952e3c118c763138e83693d7fd@frap129.org"},"message":"arm64: Use optimized memcmp\n\nPatch written by Wilco Dijkstra submitted for review to newlib:\nhttps://sourceware.org/ml/newlib/2017/msg00524.html\n\nThis is an optimized memcmp for AArch64.  This is a complete rewrite\nusing a different algorithm.  The previous version split into cases\nwhere both inputs were aligned, the inputs were mutually aligned and\nunaligned using a byte loop.  The new version combines all these cases,\nwhile small inputs of less than 8 bytes are handled separately.\n\nThis allows the main code to be sped up using unaligned loads since\nthere are now at least 8 bytes to be compared.  After the first 8 bytes,\nalign the first input.  This ensures each iteration does at most one\nunaligned access and mutually aligned inputs behave as aligned.\nAfter the main loop, process the last 8 bytes using unaligned accesses.\n\nThis improves performance of (mutually) aligned cases by 25% and\nunaligned by >500% (yes >6 times faster) on large inputs.\n\n2017-06-28  Wilco Dijkstra  <wdijkstr@arm.com>\n\n        * bionic/libc/arch-arm64/generic/bionic/memcmp.S (memcmp):\n                Rewrite of optimized memcmp.\n\nGLIBC benchtests/bench-memcmp.c performance comparison for Cortex-A53:\n\nLength    1, alignment  1/ 1:        153%\nLength    1, alignment  1/ 1:        119%\nLength    1, alignment  1/ 1:        154%\nLength    2, alignment  2/ 2:        121%\nLength    2, alignment  2/ 2:        140%\nLength    2, alignment  2/ 2:        121%\nLength    3, alignment  3/ 3:        105%\nLength    3, alignment  3/ 3:        105%\nLength    3, alignment  3/ 3:        105%\nLength    4, alignment  4/ 4:        155%\nLength    4, alignment  4/ 4:        154%\nLength    4, alignment  4/ 4:        161%\nLength    5, alignment  5/ 5:        173%\nLength    5, alignment  5/ 5:        173%\nLength    5, alignment  5/ 5:        173%\nLength    6, alignment  6/ 6:        145%\nLength    6, alignment  6/ 6:        145%\nLength    6, alignment  6/ 6:        145%\nLength    7, alignment  7/ 7:        125%\nLength    7, alignment  7/ 7:        125%\nLength    7, alignment  7/ 7:        125%\nLength    8, alignment  8/ 8:        111%\nLength    8, alignment  8/ 8:        130%\nLength    8, alignment  8/ 8:        124%\nLength    9, alignment  9/ 9:        160%\nLength    9, alignment  9/ 9:        160%\nLength    9, alignment  9/ 9:        150%\nLength   10, alignment 10/10:        170%\nLength   10, alignment 10/10:        137%\nLength   10, alignment 10/10:        150%\nLength   11, alignment 11/11:        160%\nLength   11, alignment 11/11:        160%\nLength   11, alignment 11/11:        160%\nLength   12, alignment 12/12:        146%\nLength   12, alignment 12/12:        168%\nLength   12, alignment 12/12:        156%\nLength   13, alignment 13/13:        167%\nLength   13, alignment 13/13:        167%\nLength   13, alignment 13/13:        173%\nLength   14, alignment 14/14:        167%\nLength   14, alignment 14/14:        168%\nLength   14, alignment 14/14:        168%\nLength   15, alignment 15/15:        168%\nLength   15, alignment 15/15:        173%\nLength   15, alignment 15/15:        173%\nLength    1, alignment  0/ 0:        134%\nLength    1, alignment  0/ 0:        127%\nLength    1, alignment  0/ 0:        119%\nLength    2, alignment  0/ 0:        94%\nLength    2, alignment  0/ 0:        94%\nLength    2, alignment  0/ 0:        106%\nLength    3, alignment  0/ 0:        82%\nLength    3, alignment  0/ 0:        87%\nLength    3, alignment  0/ 0:        82%\nLength    4, alignment  0/ 0:        115%\nLength    4, alignment  0/ 0:        115%\nLength    4, alignment  0/ 0:        122%\nLength    5, alignment  0/ 0:        127%\nLength    5, alignment  0/ 0:        119%\nLength    5, alignment  0/ 0:        127%\nLength    6, alignment  0/ 0:        103%\nLength    6, alignment  0/ 0:        100%\nLength    6, alignment  0/ 0:        100%\nLength    7, alignment  0/ 0:        82%\nLength    7, alignment  0/ 0:        91%\nLength    7, alignment  0/ 0:        87%\nLength    8, alignment  0/ 0:        111%\nLength    8, alignment  0/ 0:        124%\nLength    8, alignment  0/ 0:        124%\nLength    9, alignment  0/ 0:        136%\nLength    9, alignment  0/ 0:        136%\nLength    9, alignment  0/ 0:        136%\nLength   10, alignment  0/ 0:        136%\nLength   10, alignment  0/ 0:        135%\nLength   10, alignment  0/ 0:        136%\nLength   11, alignment  0/ 0:        136%\nLength   11, alignment  0/ 0:        136%\nLength   11, alignment  0/ 0:        135%\nLength   12, alignment  0/ 0:        136%\nLength   12, alignment  0/ 0:        136%\nLength   12, alignment  0/ 0:        136%\nLength   13, alignment  0/ 0:        135%\nLength   13, alignment  0/ 0:        136%\nLength   13, alignment  0/ 0:        136%\nLength   14, alignment  0/ 0:        136%\nLength   14, alignment  0/ 0:        136%\nLength   14, alignment  0/ 0:        136%\nLength   15, alignment  0/ 0:        136%\nLength   15, alignment  0/ 0:        136%\nLength   15, alignment  0/ 0:        136%\nLength    4, alignment  0/ 0:        115%\nLength    4, alignment  0/ 0:        115%\nLength    4, alignment  0/ 0:        115%\nLength   32, alignment  0/ 0:        127%\nLength   32, alignment  7/ 2:        395%\nLength   32, alignment  0/ 0:        127%\nLength   32, alignment  0/ 0:        127%\nLength    8, alignment  0/ 0:        111%\nLength    8, alignment  0/ 0:        124%\nLength    8, alignment  0/ 0:        124%\nLength   64, alignment  0/ 0:        128%\nLength   64, alignment  6/ 4:        475%\nLength   64, alignment  0/ 0:        131%\nLength   64, alignment  0/ 0:        134%\nLength   16, alignment  0/ 0:        128%\nLength   16, alignment  0/ 0:        119%\nLength   16, alignment  0/ 0:        128%\nLength  128, alignment  0/ 0:        129%\nLength  128, alignment  5/ 6:        475%\nLength  128, alignment  0/ 0:        130%\nLength  128, alignment  0/ 0:        129%\nLength   32, alignment  0/ 0:        126%\nLength   32, alignment  0/ 0:        126%\nLength   32, alignment  0/ 0:        126%\nLength  256, alignment  0/ 0:        127%\nLength  256, alignment  4/ 8:        545%\nLength  256, alignment  0/ 0:        126%\nLength  256, alignment  0/ 0:        128%\nLength   64, alignment  0/ 0:        171%\nLength   64, alignment  0/ 0:        171%\nLength   64, alignment  0/ 0:        174%\nLength  512, alignment  0/ 0:        126%\nLength  512, alignment  3/10:        585%\nLength  512, alignment  0/ 0:        126%\nLength  512, alignment  0/ 0:        127%\nLength  128, alignment  0/ 0:        129%\nLength  128, alignment  0/ 0:        128%\nLength  128, alignment  0/ 0:        129%\nLength 1024, alignment  0/ 0:        125%\nLength 1024, alignment  2/12:        611%\nLength 1024, alignment  0/ 0:        126%\nLength 1024, alignment  0/ 0:        126%\nLength  256, alignment  0/ 0:        128%\nLength  256, alignment  0/ 0:        127%\nLength  256, alignment  0/ 0:        128%\nLength 2048, alignment  0/ 0:        125%\nLength 2048, alignment  1/14:        625%\nLength 2048, alignment  0/ 0:        125%\nLength 2048, alignment  0/ 0:        125%\nLength  512, alignment  0/ 0:        126%\nLength  512, alignment  0/ 0:        127%\nLength  512, alignment  0/ 0:        127%\nLength 4096, alignment  0/ 0:        125%\nLength 4096, alignment  0/16:        125%\nLength 4096, alignment  0/ 0:        125%\nLength 4096, alignment  0/ 0:        125%\nLength 1024, alignment  0/ 0:        126%\nLength 1024, alignment  0/ 0:        126%\nLength 1024, alignment  0/ 0:        126%\nLength 8192, alignment  0/ 0:        125%\nLength 8192, alignment 63/18:        636%\nLength 8192, alignment  0/ 0:        125%\nLength 8192, alignment  0/ 0:        125%\nLength   16, alignment  1/ 2:        317%\nLength   16, alignment  1/ 2:        317%\nLength   16, alignment  1/ 2:        317%\nLength   32, alignment  2/ 4:        395%\nLength   32, alignment  2/ 4:        395%\nLength   32, alignment  2/ 4:        398%\nLength   64, alignment  3/ 6:        475%\nLength   64, alignment  3/ 6:        475%\nLength   64, alignment  3/ 6:        477%\nLength  128, alignment  4/ 8:        479%\nLength  128, alignment  4/ 8:        479%\nLength  128, alignment  4/ 8:        479%\nLength  256, alignment  5/10:        543%\nLength  256, alignment  5/10:        539%\nLength  256, alignment  5/10:        543%\nLength  512, alignment  6/12:        585%\nLength  512, alignment  6/12:        585%\nLength  512, alignment  6/12:        585%\nLength 1024, alignment  7/14:        611%\nLength 1024, alignment  7/14:        611%\nLength 1024, alignment  7/14:        611%\n\nSigned-off-by: Joe Maples <joe@frap129.org>","distinct":true,"url":"https://api.github.com/repos/DU-bullhead/android_kernel_nextbit_msm8992/commits/b4c172d4099a4c19634b9e8af01219e2a46d7f60"},{"sha":"b21daccf942b69ce1401574d82761558e36b5ff6","author":{"name":"Joe Maples","email":"16a9a54ddf4259952e3c118c763138e83693d7fd@frap129.org"},"message":"arm64: Import optimized strrchr from newlib\n\nSigned-off-by: Joe Maples <joe@frap129.org>","distinct":true,"url":"https://api.github.com/repos/DU-bullhead/android_kernel_nextbit_msm8992/commits/b21daccf942b69ce1401574d82761558e36b5ff6"},{"sha":"1c1020f9fc49d1d9b89dfa56efa786692884b677","author":{"name":"Joe Maples","email":"16a9a54ddf4259952e3c118c763138e83693d7fd@frap129.org"},"message":"arm64: strcmp: Align to cache and preload\n\nAdapted from https://github.com/AOSPA/android_bionic/commit/1fb9f9b675f08c2114802247a4b5b12b25e0e11a\n\nSigned-off-by: Joe Maples <joe@frap129.org>","distinct":true,"url":"https://api.github.com/repos/DU-bullhead/android_kernel_nextbit_msm8992/commits/1c1020f9fc49d1d9b89dfa56efa786692884b677"}]}
{"actor":{"display_login":"NurKeinNeid"}}