Exploiting knowing sizes of string.

Ondřej Bílka neleai@seznam.cz
Thu Jun 4 12:53:00 GMT 2015

On Thu, Jun 04, 2015 at 02:33:19PM +0200, Jakub Jelinek wrote:
> On Thu, Jun 04, 2015 at 12:26:03PM +0000, Joseph Myers wrote:
> > > Again is this worth a gcc pass?
> > 
> > This isn't a matter of compiler passes; it's additional checks in existing 
> > built-in function handling.  Maybe that built-in function handling should 
> > move to the match-and-simplify infrastructure (some, for libm functions 
> > and bswap, already has) to make this even simpler to implement.
> GCC already has a pass that attempts to track known and earlier computed
> lengths of strings, and do various transformations and optimizations based
> on that, see the tree-ssa-strlen.c pass.  Most of that you really can't do
> at the glibc headers level.
Yes, I was writing down ideas that I have and this was one of these. I
didn't knew it does transformations, just checked that it doesn't use
length from stpcpy or in

int foo(char *s)
  int l = strlen (s);
  char *p = strchr (s,'a');
  return p+l;

More information about the Gcc mailing list