Q&A and the round table highlights from the virtual dev meeting

+cc gchatelet for #3 under Q&A

Hello all,

Some of the participants at the dev meeting who missed the talk and
wanted to see the answers to the questions that were asked. So, I
compiled the questions and their answers below. I noticed that some
questions came in after the Q&A concluded so I have also included
answers for them as well.

Also included in the email is a short write up of the highlights of
the round table discussion.

We have gathered statistics for several important binaries at Google (servers, databases, realtime and batch jobs). We are sharing the observed probability distributions inside llvm-libc[1] and plan to provide a way to “score” the implementations with these distributions.
We currently offer 9 different profiles for memcpy and memcmp (4 for memset). We may add more of them if we feel they are representative enough.

The key takeaway here is that most sizes are small as described in [2] and so it is important to optimize for them. To be clear it does not mean that we don’t care about larger sizes (large copies must be efficient as well) but overall it’s on the small sizes that we are likely to gain.

Guillaume Chatelet

  1. https://reviews.llvm.org/D89401
  2. https://github.com/llvm/llvm-project/tree/master/libc/benchmarks#benchmarking-regimes