[Bug tree-optimization/3511] Inlined strlen() could be smarter
rguenth at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Mon May 8 09:42:00 GMT 2006
------- Comment #5 from rguenth at gcc dot gnu dot org 2006-05-08 09:42 -------
This is really a PRE problem, much like the simplified testcase
char firstchar (const char *s)
{
if (!s)
s = "";
return s[0];
}
where it could record the fact that the load from s[0] is available as
is strlen(s). Now, if it is worth it is another question.
Danny, will the new VN do anything about this, or make it easier to tackle
this problem? Now, ccp has moved the assignment into a PHI node, which may
make this more complicated (this is after PRE):
mystrlen (s)
{
size_t D.1648;
<bb 2>:
if (s_2 == 0B) goto <L4>; else goto <L3>;
<L4>:;
goto <bb 4> (<L1>);
<L3>:;
# s_1 = PHI <s_2(3), &""[0](5)>;
<L1>:;
# VUSE <SMT.4_6>;
D.1648_3 = strlen (s_1);
return D.1648_3;
}
--
rguenth at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |dberlin at gcc dot gnu dot
| |org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=3511
More information about the Gcc-bugs
mailing list