[Bug target/71103] avr-gcc crashes with unrecognizable insn error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71103 Georg-Johann Lay changed: What|Removed |Added Status|REOPENED|RESOLVED Resolution|--- |FIXED Target Milestone|--- |6.2 --- Comment #15 from Georg-Johann Lay --- Fixed in 4.9.4, 5.5 and 6.2+.
[Bug target/71103] avr-gcc crashes with unrecognizable insn error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71103 --- Comment #14 from Georg-Johann Lay --- Author: gjl Date: Tue Jun 21 10:23:08 2016 New Revision: 237638 URL: https://gcc.gnu.org/viewcvs?rev=237638=gcc=rev Log: PR target/71103 * config/avr/avr.md (movqi): Only handle loading subreg:qi of constant addresses if can_create_pseudo_p. Modified: branches/gcc-6-branch/gcc/ChangeLog branches/gcc-6-branch/gcc/config/avr/avr.md
[Bug target/71103] avr-gcc crashes with unrecognizable insn error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71103 --- Comment #13 from Georg-Johann Lay --- Author: gjl Date: Tue Jun 21 10:18:26 2016 New Revision: 237637 URL: https://gcc.gnu.org/viewcvs?rev=237637=gcc=rev Log: PR target/71103 * config/avr/avr.md (movqi): Only handle loading subreg:qi of constant addresses if can_create_pseudo_p. Modified: branches/gcc-5-branch/gcc/ChangeLog branches/gcc-5-branch/gcc/config/avr/avr.md
[Bug target/71103] avr-gcc crashes with unrecognizable insn error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71103 --- Comment #12 from Georg-Johann Lay --- Author: gjl Date: Tue Jun 21 10:15:25 2016 New Revision: 237636 URL: https://gcc.gnu.org/viewcvs?rev=237636=gcc=rev Log: PR target/71103 * config/avr/avr.md (movqi): Only handle loading subreg:qi of constant addresses if can_create_pseudo_p. Modified: branches/gcc-4_9-branch/gcc/ChangeLog branches/gcc-4_9-branch/gcc/config/avr/avr.md
[Bug target/71103] avr-gcc crashes with unrecognizable insn error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71103 --- Comment #11 from Georg-Johann Lay --- Author: gjl Date: Tue Jun 21 10:10:46 2016 New Revision: 237635 URL: https://gcc.gnu.org/viewcvs?rev=237635=gcc=rev Log: PR target/71103 * config/avr/avr.md (movqi): Only handle loading subreg:qi of constant addresses if can_create_pseudo_p. Modified: trunk/gcc/ChangeLog trunk/gcc/config/avr/avr.md
[Bug target/71103] avr-gcc crashes with unrecognizable insn error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71103 Georg-Johann Lay changed: What|Removed |Added Status|RESOLVED|REOPENED Resolution|FIXED |--- --- Comment #10 from Georg-Johann Lay --- Unfortunately there are now cases where the subregs pop up during reload and hence copy_to_mode_reg is prohibited like with strftime from avr-libc :-( There are already insns that assume that subregs of constants work to some degree like xload8_A and xload_A. Maybe we'll have to support subregs of constants in their own right...
[Bug target/71103] avr-gcc crashes with unrecognizable insn error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71103 Georg-Johann Lay changed: What|Removed |Added Priority|P3 |P4 Status|NEW |RESOLVED Resolution|--- |FIXED Known to fail|4.9.2, 5.2.1|4.9.3, 5.4.1, 6.1.1 --- Comment #9 from Georg-Johann Lay --- Fixed in 4.9.4, 5.5, 6.2.
[Bug target/71103] avr-gcc crashes with unrecognizable insn error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71103 --- Comment #8 from Georg-Johann Lay --- Author: gjl Date: Mon Jun 20 12:02:36 2016 New Revision: 237594 URL: https://gcc.gnu.org/viewcvs?rev=237594=gcc=rev Log: gcc/ Backport from 2016-06-20 trunk r237589, r236558. PR target/71103 * config/avr/avr.md (movqi): Handle loading subreg:qi (const, symbol_ref,label_ref). gcc/testsuite/ Backport from 2016-06-20 trunk r237589, r236558. PR target/71103 * gcc.target/avr/pr71103.c: New test. * gcc.target/avr/torture/pr71103-2.c: New test. Added: branches/gcc-4_9-branch/gcc/testsuite/gcc.target/avr/pr71103.c branches/gcc-4_9-branch/gcc/testsuite/gcc.target/avr/torture/pr71103-2.c Modified: branches/gcc-4_9-branch/gcc/ChangeLog branches/gcc-4_9-branch/gcc/config/avr/avr.md branches/gcc-4_9-branch/gcc/testsuite/ChangeLog
[Bug target/71103] avr-gcc crashes with unrecognizable insn error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71103 --- Comment #7 from Georg-Johann Lay --- Author: gjl Date: Mon Jun 20 11:55:11 2016 New Revision: 237593 URL: https://gcc.gnu.org/viewcvs?rev=237593=gcc=rev Log: gcc/ Backport from 2016-06-20 trunk r237589, r236558. PR target/71103 * config/avr/avr.md (movqi): Handle loading subreg:qi (const, symbol_ref,label_ref). gcc/testsuite/ Backport from 2016-06-20 trunk r237589, r236558. PR target/71103 * gcc.target/avr/pr71103.c: New test. * gcc.target/avr/torture/pr71103-2.c: New test. Added: branches/gcc-5-branch/gcc/testsuite/gcc.target/avr/pr71103.c branches/gcc-5-branch/gcc/testsuite/gcc.target/avr/torture/pr71103-2.c Modified: branches/gcc-5-branch/gcc/ChangeLog branches/gcc-5-branch/gcc/config/avr/avr.md branches/gcc-5-branch/gcc/testsuite/ChangeLog
[Bug target/71103] avr-gcc crashes with unrecognizable insn error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71103 --- Comment #6 from Georg-Johann Lay --- Author: gjl Date: Mon Jun 20 11:20:27 2016 New Revision: 237591 URL: https://gcc.gnu.org/viewcvs?rev=237591=gcc=rev Log: gcc/ Backport from 2016-06-20 trunk r237589, r236558. PR target/71103 * config/avr/avr.md (movqi): Handle loading subreg:qi (const, symbol_ref,label_ref). gcc/testsuite/ Backport from 2016-06-20 trunk r237589, r236558. PR target/71103 * gcc.target/avr/pr71103.c: New test. * gcc.target/avr/torture/pr71103-2.c: New test. Added: branches/gcc-6-branch/gcc/testsuite/gcc.target/avr/pr71103.c branches/gcc-6-branch/gcc/testsuite/gcc.target/avr/torture/pr71103-2.c Modified: branches/gcc-6-branch/gcc/ChangeLog branches/gcc-6-branch/gcc/config/avr/avr.md branches/gcc-6-branch/gcc/testsuite/ChangeLog
[Bug target/71103] avr-gcc crashes with unrecognizable insn error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71103 --- Comment #5 from Georg-Johann Lay --- Author: gjl Date: Mon Jun 20 11:01:13 2016 New Revision: 237589 URL: https://gcc.gnu.org/viewcvs?rev=237589=gcc=rev Log: gcc/ PR target/71103 * config/avr/avr.md (movqi): Handle loading subreg:qi (const). gcc/testsuite/ PR target/71103 * gcc.target/avr/torture/pr71103-2.c: New test. Added: trunk/gcc/testsuite/gcc.target/avr/torture/pr71103-2.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/avr/avr.md trunk/gcc/testsuite/ChangeLog
[Bug target/71103] avr-gcc crashes with unrecognizable insn error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71103 --- Comment #4 from Pitchumani --- Yes, it is incomplete. These SUBREGs generated in rtl generation itself. define_insn for movqi bails out for this bug. Have to check if could be handled in define_expand of mov itself.
[Bug target/71103] avr-gcc crashes with unrecognizable insn error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71103 --- Comment #3 from Georg-Johann Lay --- This change is at least incomplete: it does not handle CONST. To see this change the test case to returnValue.response = response + 1; Who is generating these SUBREGs? If it's in a push insn, we should handle that case in the push insn/expander so that these SUBREGs won't be generated in the first place.
[Bug target/71103] avr-gcc crashes with unrecognizable insn error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71103 --- Comment #2 from denisc at gcc dot gnu.org --- Author: denisc Date: Sat May 21 10:47:27 2016 New Revision: 236558 URL: https://gcc.gnu.org/viewcvs?rev=236558=gcc=rev Log: PR target/71103 * config/avr/avr.md (define_expand "mov"): If the source operand is subreg (symbol_ref) then move the symbol ref to register. PR target/71103 * gcc.target/avr/pr71103.c: New test. Added: trunk/gcc/testsuite/gcc.target/avr/pr71103.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/avr/avr.md trunk/gcc/testsuite/ChangeLog
[Bug target/71103] avr-gcc crashes with unrecognizable insn error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71103 Georg-Johann Lay changed: What|Removed |Added Target||avr Status|UNCONFIRMED |NEW Known to work||4.6.2 Keywords||ice-on-valid-code Last reconfirmed||2016-05-21 CC||gjl at gcc dot gnu.org Ever confirmed|0 |1 Known to fail||4.7.2, 4.8.0, 4.9.2, 5.2.1 Severity|major |normal --- Comment #1 from Georg-Johann Lay --- Confirmed for 5.2.1. At .expand we have ;; MEM[(struct ResponseStruct *) + 1B] = (insn 6 5 7 (set (subreg:QI (reg:PSI 42 [ D.1574 ]) 1) (subreg:QI (symbol_ref:HI ("response") [flags 0x2] ) 0)) foo.c:11 -1 (nil)) (insn 7 6 0 (set (subreg:QI (reg:PSI 42 [ D.1574 ]) 2) (subreg:QI (symbol_ref:HI ("response") [flags 0x2] ) 1)) foo.c:11 -1 (nil)) hence the load of HImode is broken into 2 QImode leaving us with subregs of the symbol_ref. 4.6.2 does work (presumably because there was no PSImode in <= 4.6)