re PR tree-optimization/71625 (missing strlen optimization on different array initial...
authorJakub Jelinek <jakub@redhat.com>
Wed, 29 Jun 2016 08:47:46 +0000 (10:47 +0200)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 29 Jun 2016 08:47:46 +0000 (10:47 +0200)
commit5f3cd7c3f31373789dbc8360fa3d46fcaf473f99
treeaa9612115c416b5ff9f86c284f36e28909c53190
parent36d0d9be5585ccc0ea8a44e6d4e93d8d0f7f53a0
re PR tree-optimization/71625 (missing strlen optimization on different array initialization style)

PR tree-optimization/71625
* tree-ssa-strlen.c (get_addr_stridx): Add PTR argument.  Assume list
is sorted by ascending list->offset.  If PTR is non-NULL and there is
previous strinfo, call get_stridx_plus_constant.
(get_stridx): Pass exp as second argument to get_addr_stridx.
(addr_stridxptr): Add missing list = list->next, so that there can be
more than one entries in the list.  Bump limit from 16 to 32.  Ensure
the list is sorted by ascending list->offset.
(get_stridx_plus_constant): Adjust so that it can be also called with
ADDR_EXPR instead of SSA_NAME as PTR.
(handle_char_store): Pass NULL_TREE as second argument to
get_addr_stridx.

* gcc.dg/strlenopt-28.c: New test.

From-SVN: r237841
gcc/ChangeLog
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/strlenopt-28.c [new file with mode: 0644]
gcc/tree-ssa-strlen.c