This patch adds strlen to LoopIdiomRecognize.cpp. It is the first part of 3 patches:
- Strlen loop idiom recognition
- strlen16 recognition and creation of new strlen16 intrinsic
- Folding of strlen/strlen16 call if they are only used for zero equality comparison (replace with load of first char)
Example that this recognizes:
unsigned strlen(char *Str) {
  char *Src = Str;
  if (!Src)
    return 0;
  for (; *Src;)
    Src++;
  return Src - Str;
}
Can you add similar statistic for strlen?