Hi!

Similarly to the previous patch, this one is the second spot
where nonoverlapping_memrefs_p is called with FUNCTION_DECLs
without DECL_RTL.  With both patches in the only case
this happens in bootstrap/regtest is the pr77834.c testcase.

Same questions as for the DSE patch apply.

2016-11-04  Jakub Jelinek  <ja...@redhat.com>

        PR target/77834
        * sched-deps.c (sched_analyze_2): Don't recurse in CALL
        first argument if it is a MEM, just on its address.

--- gcc/sched-deps.c.jj 2016-10-31 13:28:12.000000000 +0100
+++ gcc/sched-deps.c    2016-11-04 09:59:28.192249487 +0100
@@ -2808,6 +2808,19 @@ sched_analyze_2 (struct deps_desc *deps,
 
       return;
 
+    case CALL:
+      /* Don't consider MEM in CALL's first argument
+         as a memory read, that is the first byte of
+         the function to be called.  Only look at its
+         address.  */
+      if (MEM_P (XEXP (x, 0)))
+       {
+         sched_analyze_2 (deps, XEXP (XEXP (x, 0), 0), insn);
+         sched_analyze_2 (deps, XEXP (x, 1), insn);
+         return;
+       }
+      break;
+
     default:
       break;
     }

        Jakub

Reply via email to