This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug rtl-optimization/52113] [4.7 regression][lower-subreg.c] ICE: in extract_insn, at recog.c:2123
- From: "gjl at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Fri, 03 Feb 2012 18:47:10 +0000
- Subject: [Bug rtl-optimization/52113] [4.7 regression][lower-subreg.c] ICE: in extract_insn, at recog.c:2123
- Auto-submitted: auto-generated
- References: <bug-52113-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52113
Georg-Johann Lay <gjl at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Target| |avr
Status|UNCONFIRMED |NEW
Known to work| |4.6.2
Keywords| |ice-on-valid-code
Last reconfirmed| |2012-02-03
Component|target |rtl-optimization
CC| |gjl at gcc dot gnu.org
Ever Confirmed|0 |1
Summary|[4.7 regression][avr] ICE: |[4.7
|in extract_insn, at |regression][lower-subreg.c]
|recog.c:2123 |ICE: in extract_insn, at
| |recog.c:2123
Target Milestone|--- |4.7.0
--- Comment #1 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2012-02-03 18:47:10 UTC ---
The ICE happens in .split2 and can be avoided by -fno-split-wide-types
The strange concatn insn 26 is generated in pass .subreg2 after .split1
generated the following sequence for the multiply:
(insn 26 6 27 2 (set (reg:HI 55)
(zero_extend:HI (reg:QI 48 [ inactivityTimer ]))) pr52113.cpp:10 -1
(nil))
(insn 27 26 29 2 (set (reg:HI 56)
(const_int 1000 [0x3e8])) pr52113.cpp:10 -1
(nil))
(insn 29 27 30 2 (set (reg:HI 18 r18)
(reg:HI 55)) pr52113.cpp:10 -1
(nil))
(insn 30 29 31 2 (set (reg:HI 26 r26)
(reg:HI 56)) pr52113.cpp:10 -1
(nil))
(insn 31 30 32 2 (set (reg:SI 22 r22)
(mult:SI (zero_extend:SI (reg:HI 18 r18))
(zero_extend:SI (reg:HI 26 r26)))) pr52113.cpp:10 -1
(nil))
(insn 32 31 9 2 (set (reg:SI 49)
(reg:SI 22 r22)) pr52113.cpp:10 -1
(nil))
The sequence comes from .split1 that splitted the following pattern that was
sythesized by combine:
(insn 8 6 9 2 (parallel [
(set (reg:SI 49)
(mult:SI (zero_extend:SI (reg:QI 48 [ inactivityTimer ]))
(const_int 1000 [0x3e8])))
(clobber (reg:HI 26 r26))
(clobber (reg:DI 18 r18))
]) pr52113.cpp:10 111 {muluqisi3}