re PR middle-end/61762 (failure to optimize memcpy from constant string)
authorRichard Biener <rguenther@suse.de>
Fri, 25 Jul 2014 07:44:57 +0000 (07:44 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Fri, 25 Jul 2014 07:44:57 +0000 (07:44 +0000)
commitb2505143369334866ed98d69f08033068b24de34
treec7fe34fd006f2ff66fbe4a743da4b4b825b9c156
parent1ed85d52ef443e528bfccc64d81a7b263e9defa3
re PR middle-end/61762 (failure to optimize memcpy from constant string)

2014-07-25  Richard Biener  <rguenther@suse.de>

PR middle-end/61762
PR middle-end/61894
* fold-const.c (native_encode_int): Add and handle offset
parameter to do partial encodings of expr.
(native_encode_fixed): Likewise.
(native_encode_real): Likewise.
(native_encode_complex): Likewise.
(native_encode_vector): Likewise.
(native_encode_string): Likewise.
(native_encode_expr): Likewise.
* fold-const.c (native_encode_expr): Add offset parameter
defaulting to -1.
* gimple-fold.c (fold_string_cst_ctor_reference): Remove.
(fold_ctor_reference): Handle all reads from tcc_constant
ctors.

* gcc.dg/pr61762.c: New testcase.
* gcc.dg/fold-cstring.c: Likewise.
* gcc.dg/fold-cvect.c: Likewise.

From-SVN: r213045
gcc/ChangeLog
gcc/fold-const.c
gcc/fold-const.h
gcc/gimple-fold.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.dg/fold-cstring.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/fold-cvect.c [new file with mode: 0644]
gcc/testsuite/gcc.dg/pr61762.c [new file with mode: 0644]