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

Reply via email to