re PR rtl-optimization/88796 (-fstack-protector* kills RTL DSE opportunities)
authorJakub Jelinek <jakub@redhat.com>
Mon, 14 Jan 2019 12:01:01 +0000 (13:01 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Mon, 14 Jan 2019 12:01:01 +0000 (13:01 +0100)
commita49a975f0eaf49d9882ba4bf4b583f99d56d0d3a
tree5d19df5d6e01eac1ed1c0504b50a318c3e91f688
parent7227b597ac26b10aa51d334d72bd74365047182c
re PR rtl-optimization/88796 (-fstack-protector* kills RTL DSE opportunities)

PR rtl-optimization/88796
* emit-rtl.h (struct rtl_data): Add stack_protect_guard_decl field.
* cfgexpand.c (stack_protect_prologue): Initialize
crtl->stack_protect_guard_decl.
* function.c (stack_protect_epilogue): Use it instead of calling
targetm.stack_protect_guard again.
* dse.c (check_mem_read_rtx): Ignore MEM_VOLATILE_P reads from
MEMs with MEM_EXPR equal to crtl->stack_protect_guard or
crtl->stack_protect_guard_decl.
* config/i386/i386.c (ix86_stack_protect_guard): Set TREE_THIS_VOLATILE
on the returned MEM_EXPR.

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

From-SVN: r267916
gcc/ChangeLog
gcc/cfgexpand.c
gcc/config/i386/i386.c
gcc/dse.c
gcc/emit-rtl.h
gcc/function.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/i386/pr88796.c [new file with mode: 0644]