re PR rtl-optimization/66152 (suboptimal load bytes to stack)
authorJakub Jelinek <jakub@redhat.com>
Sat, 16 Feb 2019 11:20:33 +0000 (12:20 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Sat, 16 Feb 2019 11:20:33 +0000 (12:20 +0100)
commit3140b2ed036c51b9df0fda28b153ebecb4f906ec
tree81cea5780c130ecb2ea39b2cddc613799d6e31dc
parent1f1d52e33df1b07c3d33b9fe377691ebbf4be157
re PR rtl-optimization/66152 (suboptimal load bytes to stack)

PR rtl-optimization/66152
* builtins.h (c_readstr): Declare.
* builtins.c (c_readstr): Remove forward declaration.  Add
null_terminated_p argument, if false, read all bytes from the
string instead of stopping after '\0'.
* expr.c (string_cst_read_str): New function.
(store_expr): Use string_cst_read_str instead of
builtin_strncpy_read_str.  Try to store by pieces the whole
exp_len first, and only if that fails, split it up into
store by pieces followed by clear_storage.  Formatting fix.

* gcc.target/i386/pr66152.c: New test.

From-SVN: r268957
gcc/ChangeLog
gcc/builtins.c
gcc/builtins.h
gcc/expr.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr66152.c [new file with mode: 0644]