Lines Matching refs:StrLen
287 if (Dst == Src) { // stpcpy(x,x) -> x+strlen(x)
288 Value *StrLen = EmitStrLen(Src, B, TD, TLI);
289 return StrLen ? B.CreateInBoundsGEP(Dst, StrLen) : 0;
382 // memory is to be moved to. We just generate a call to strlen.
479 // zero (a weird way to spell strlen).
664 if (Dst == Src) { // stpcpy(x,x) -> x+strlen(x)
665 Value *StrLen = EmitStrLen(Src, B, TD, TLI);
666 return StrLen ? B.CreateInBoundsGEP(Dst, StrLen) : 0;
744 // Constant folding: strlen("xyz") -> 3
748 // strlen(x) != 0 --> *x != 0
749 // strlen(x) == 0 --> *x == 0
863 // strcspn(s, "") -> strlen(s)
884 // fold strstr(a, b) == a -> strncmp(a, b, strlen(b)) == 0
886 Value *StrLen = EmitStrLen(CI->getArgOperand(1), B, TD, TLI);
887 if (!StrLen)
890 StrLen, B, TD, TLI);
1439 // sprintf(str, fmt) -> llvm.memcpy(str, fmt, strlen(fmt)+1, 1)
1469 // sprintf(dest, "%s", str) -> llvm.memcpy(dest, str, strlen(str)+1, 1)
1633 // fputs(s,F) --> fwrite(s,1,strlen(s),F)
1725 static StrLenOpt StrLen;
1795 case LibFunc::strlen:
1796 return &StrLen;