The following patch fixes https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64671
The patch was successfully bootstrapped on x86-64.I don't expect that the patch can result in any trouble.
Committed as rev. 219857. 2015-01-19 Vladimir Makarov <vmaka...@redhat.com> PR rtl-optimization/64671 * lra-remat.c (operand_to_remat): Don't consider jump and call insns.
Index: lra-remat.c =================================================================== --- lra-remat.c (revision 219705) +++ lra-remat.c (working copy) @@ -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