gcc/
authorYvan Roux <yvan.roux@linaro.org>
Fri, 9 Dec 2016 11:52:42 +0000 (12:52 +0100)
committerYvan Roux <yvan.roux@linaro.org>
Mon, 12 Dec 2016 10:09:37 +0000 (10:09 +0000)
commit727ef6e852840ec9a0656a676a8bd9a9349247dd
treecbfbbc2d0dea5c54cd07c0b3d708e3a901896df3
parent4cbd51dd0019778a287ec892558e3abc88d39bee
gcc/
Backport from trunk r240568.
2016-09-28  Wilco Dijkstra  <wdijkstr@arm.com>

PR tree-optimization/61056
* gimple-fold.c (gimple_fold_builtin_strchr):
New function to optimize strchr (s, 0) to strlen.
(gimple_fold_builtin): Add BUILT_IN_STRCHR case.

gcc/testsuite/
Backport from trunk r240568.
2016-09-28  Wilco Dijkstra  <wdijkstr@arm.com>

* gcc.dg/strlenopt-20.c: Update test.
* gcc.dg/strlenopt-21.c: Likewise.
* gcc.dg/strlenopt-22.c: Likewise.
* gcc.dg/strlenopt-22g.c: Likewise.
* gcc.dg/strlenopt-26.c: Likewise.
* gcc.dg/strlenopt-5.c: Likewise.
* gcc.dg/strlenopt-7.c: Likewise.
* gcc.dg/strlenopt-9.c: Likewise.

gcc/
Backport from trunk r240585.
2016-09-28  Wilco Dijkstra  <wdijkstr@arm.com>

* gimple-fold.c (gimple_fold_builtin): After failing to fold
strchr, also try the generic folding.

Change-Id: Ie8831d320766ac5083da722a36e92d7a44051597
gcc/gimple-fold.c
gcc/testsuite/gcc.dg/strlenopt-20.c
gcc/testsuite/gcc.dg/strlenopt-21.c
gcc/testsuite/gcc.dg/strlenopt-22.c
gcc/testsuite/gcc.dg/strlenopt-22g.c
gcc/testsuite/gcc.dg/strlenopt-26.c
gcc/testsuite/gcc.dg/strlenopt-5.c
gcc/testsuite/gcc.dg/strlenopt-7.c
gcc/testsuite/gcc.dg/strlenopt-9.c