This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug debug/48343] [4.6/4.7 Regression] ICE compiling i586 linux-2.6.38/drivers/staging/wlan-ng/p80211wep.c: in form_sum, at reload.c:5338
- From: "jakub at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 30 Mar 2011 15:17:15 +0000
- Subject: [Bug debug/48343] [4.6/4.7 Regression] ICE compiling i586 linux-2.6.38/drivers/staging/wlan-ng/p80211wep.c: in form_sum, at reload.c:5338
- Auto-submitted: auto-generated
- References: <bug-48343-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48343
Jakub Jelinek <jakub at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |aoliva at gcc dot gnu.org
--- Comment #5 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-03-30 15:16:55 UTC ---
So, before combiner we have:
(insn 23 22 24 3 (parallel [
(set (reg:SI 98)
(plus:SI (reg:SI 97 [ prephitmp.9 ])
(reg/v:SI 64 [ j ])))
(clobber (reg:CC 17 flags))
]) pr48343.c:12 252 {*addsi_1}
(expr_list:REG_DEAD (reg:SI 97 [ prephitmp.9 ])
(expr_list:REG_DEAD (reg/v:SI 64 [ j ])
(expr_list:REG_UNUSED (reg:CC 17 flags)
(nil)))))
(insn 24 23 25 3 (parallel [
(set (reg:SI 99)
(zero_extend:SI (mem/s/j:QI (plus:SI (plus:SI (reg/f:SI 20
frame)
(reg/v:SI 71 [ i ]))
(const_int -320 [0xfffffffffffffec0])) [0 s S1
A8])))
(clobber (reg:CC 17 flags))
]) pr48343.c:12 123 {*zero_extendqisi2_movzbl_and}
(expr_list:REG_UNUSED (reg:CC 17 flags)
(nil)))
(insn 25 24 27 3 (parallel [
(set (reg:SI 66 [ D.1999 ])
(plus:SI (reg:SI 98)
(reg:SI 99)))
(clobber (reg:CC 17 flags))
]) pr48343.c:12 252 {*addsi_1}
(expr_list:REG_DEAD (reg:SI 99)
(expr_list:REG_DEAD (reg:SI 98)
(expr_list:REG_UNUSED (reg:CC 17 flags)
(nil)))))
(debug_insn 27 25 28 3 (var_location:SI k (reg/v:SI 71 [ i ])) pr48343.c:13 -1
(nil))
(debug_insn 28 27 29 3 (var_location:SI i (and:SI (reg:SI 66 [ D.1999 ])
(const_int 255 [0xff]))) pr48343.c:13 -1
(nil))
and SUBST_MODE is applied to pseudo 98 when i2 is insn 23 and i3 is insn 25,
after a previous propagate_for_debug set of changes which were with i3 insn 30.
So, IMHO we don't want to stop at i3 for propagate_for_debug if we are retrying
(goto retry in combine_instructions), instead we want to stop at the last i3
we've been processing in the current BB.
I'll try to write a patch.