Hi,
the transformation done to TARGET_MEM_REF in maybe_canonicalize_mem_ref_addr
is exactly the same as one of those done in maybe_fold_tmr, the latter is
better written and the former function calls the latter, so this patch changes
maybe_canonicalize_mem_ref_addr to avoid touching TARGET_MEM_REF directly.
Tested on x86-64/Linux, OK for the mainline?
2017-06-15 Eric Botcazou <ebotca...@adacore.com>
PR bootstrap/80897
* gimple-fold.c (maybe_canonicalize_mem_ref_addr): Do not change
TARGET_MEM_REF expressions directly.
--
Eric Botcazou
Index: gimple-fold.c
===================================================================
--- gimple-fold.c (revision 249091)
+++ gimple-fold.c (working copy)
@@ -4178,8 +4178,7 @@ maybe_canonicalize_mem_ref_addr (tree *t
/* Canonicalize MEM [&foo.bar, 0] which appears after propagating
of invariant addresses into a SSA name MEM_REF address. */
- if (TREE_CODE (*t) == MEM_REF
- || TREE_CODE (*t) == TARGET_MEM_REF)
+ if (TREE_CODE (*t) == MEM_REF)
{
tree addr = TREE_OPERAND (*t, 0);
if (TREE_CODE (addr) == ADDR_EXPR