This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/41551] ia64: ICE: in instantiate_virtual_regs_in_insn, at function.c:1630
- From: "jakub at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 2 Oct 2009 21:04:42 -0000
- Subject: [Bug target/41551] ia64: ICE: in instantiate_virtual_regs_in_insn, at function.c:1630
- References: <bug-41551-18261@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #2 from jakub at gcc dot gnu dot org 2009-10-02 21:04 -------
Perhaps better don't do something as non-sensical as this.
Anyway, we shouldn't ICE on it.
--- function.c.jj 2009-09-29 15:10:43.000000000 +0200
+++ function.c 2009-10-02 23:01:49.000000000 +0200
@@ -1598,7 +1598,10 @@ instantiate_virtual_regs_in_insn (rtx in
if (!safe_insn_predicate (insn_code, i, x))
{
start_sequence ();
- x = force_reg (insn_data[insn_code].operand[i].mode, x);
+ if (REG_P (x))
+ x = copy_to_reg (x);
+ else
+ x = force_reg (insn_data[insn_code].operand[i].mode, x);
seq = get_insns ();
end_sequence ();
if (seq)
should fix this.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=41551