This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/59652] [4.8 Regression] ICE: in reload_cse_simplify_operands, at postreload.c:411
- From: "danglin at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 07 Jan 2014 02:56:34 +0000
- Subject: [Bug target/59652] [4.8 Regression] ICE: in reload_cse_simplify_operands, at postreload.c:411
- Auto-submitted: auto-generated
- References: <bug-59652-4 at http dot gcc dot gnu dot org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59652
--- Comment #6 from John David Anglin <danglin at gcc dot gnu.org> ---
The fundamental issue is how these insns are reloaded:
(insn 223 222 224 7 (set (reg/f:SI 2448) (high:SI (symbol_ref:SI
("resource") [flags 0x200] <var_decl 0x40579660
resource>))) ../../../texk/xdvik/xdvi.c:2968 52 {*pa.md:2686}
(expr_list:REG_EQUIV (high:SI (symbol_ref:SI ("resource") [flags 0x200]
<v
ar_decl 0x40579660 resource>))
(nil)))
(insn 224 223 226 7 (set (reg/f:SI 2442)
(lo_sum:SI (reg/f:SI 2448)
(symbol_ref:SI ("resource") [flags 0x200] <var_decl 0x40579660
resource>))) ../../../texk/xdvik/xdvi.c:2968 55 {*pa.md:2766}
(expr_list:REG_EQUIV (symbol_ref:SI ("resource") [flags 0x200] <var_decl
0x40579660 resource>)
(nil)))
(insn 226 224 227 7 (set (reg:SI 936 [ resource.unique+-3 ])
(zero_extend:SI (mem/c:QI (plus:SI (reg/f:SI 2442)
(const_int 201 [0xc9])) [0 resource.unique+0 S1 A8])))
../../../texk/xdvik/xdvi.c:2968 84 {*pa.md:4628}
(nil))
Insn 224 ends up being deleted. I'm not sure why because reg/f:SI 2442
appears to be needed in insn 226 and later insns. What happens is reload
does an input reload for insn 226, but gets in trouble later.
The best fix that I have at the moment is to inhibit generation of REG+D
instructions prior to reload.