Avoid marking TARGET_MEM_REF bases addressable
authorRichard Biener <rguenther@suse.de>
Wed, 19 May 2021 10:36:19 +0000 (12:36 +0200)
committerRichard Biener <rguenther@suse.de>
Wed, 19 May 2021 12:53:50 +0000 (14:53 +0200)
commit35a16e4b38eb9faf212de9814f17a5215fa5538a
tree066e20b1a46a20cc5decd53bed51140dbfac3fa8
parent2e6ad1ba532fe684633edac766c598be19ad3b59
Avoid marking TARGET_MEM_REF bases addressable

The following does no longer mark TARGET_MEM_REF bases addressable,
mimicing MEM_REFs beahvior here.  In contrast to the latter,
TARGET_MEM_REF RTL expansion expects to always operate on memory
though, so make sure we expand them so.

2021-05-19  Richard Biener  <rguenther@suse.de>

* cfgexpand.c (discover_nonconstant_array_refs_r): Make
sure TARGET_MEM_REF bases are expanded as memory.
* tree-ssa-operands.c (operands_scanner::get_tmr_operands):
Do not mark TARGET_MEM_REF bases addressable.
* tree-ssa.c (non_rewritable_mem_ref_base): Handle
TARGET_MEM_REF bases as never rewritable.
* gimple-walk.c (walk_stmt_load_store_addr_ops): Do not
walk TARGET_MEM_REF bases as address-takens.
* tree-ssa-dce.c (ref_may_be_aliased): Handle TARGET_MEM_REF.
gcc/cfgexpand.c
gcc/gimple-walk.c
gcc/tree-ssa-dce.c
gcc/tree-ssa-operands.c
gcc/tree-ssa.c