re PR rtl-optimization/64671 (s390-linux profiledbootstrap failure)
authorVladimir Makarov <vmakarov@redhat.com>
Mon, 19 Jan 2015 20:13:35 +0000 (20:13 +0000)
committerVladimir Makarov <vmakarov@gcc.gnu.org>
Mon, 19 Jan 2015 20:13:35 +0000 (20:13 +0000)
2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>

PR rtl-optimization/64671
* lra-remat.c (operand_to_remat): Don't consider jump and call
insns.

From-SVN: r219857

gcc/ChangeLog
gcc/lra-remat.c

index 7bcc9bc9ac3caaca9110408fac3aa602e855fe8c..c0e751d9ee77ef484c4bd043327c963f5aba4db8 100644 (file)
@@ -1,3 +1,9 @@
+2015-01-19  Vladimir Makarov  <vmakarov@redhat.com>
+
+       PR rtl-optimization/64671
+       * lra-remat.c (operand_to_remat): Don't consider jump and call
+       insns.
+
 2015-01-19  David Edelsohn  <dje.gcc@gmail.com>
 
        * config/rs6000/default64.h: Include rs6000-cpus.def.
index 68146a1110038dd2ed5c2d95f527ee749f15a677..de5081a739abf2a57a00038b0ab334918d773b7c 100644 (file)
@@ -413,6 +413,9 @@ operand_to_remat (rtx_insn *insn)
   struct lra_static_insn_data *static_id = id->insn_static_data;
   struct lra_insn_reg *reg, *found_reg = NULL;
 
+  /* Don't rematerialize insns which can change PC.  */
+  if (JUMP_P (insn) || CALL_P (insn))
+    return -1;
   /* First find a pseudo which can be rematerialized.  */
   for (reg = id->regs; reg != NULL; reg = reg->next)
     /* True FRAME_POINTER_NEEDED might be because we can not follow