[Bug target/71103] avr-gcc crashes with unrecognizable insn error

2016-06-21 Thread gjl at gcc dot gnu.org
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

2016-06-21 Thread gjl at gcc dot gnu.org
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

2016-06-21 Thread gjl at gcc dot gnu.org
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

2016-06-21 Thread gjl at gcc dot gnu.org
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

2016-06-21 Thread gjl at gcc dot gnu.org
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

2016-06-20 Thread gjl at gcc dot gnu.org
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

2016-06-20 Thread gjl at gcc dot gnu.org
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

2016-06-20 Thread gjl at gcc dot gnu.org
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

2016-06-20 Thread gjl at gcc dot gnu.org
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

2016-06-20 Thread gjl at gcc dot gnu.org
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

2016-06-20 Thread gjl at gcc dot gnu.org
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

2016-05-24 Thread pitchumani.s at hotmail dot com
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

2016-05-22 Thread gjl at gcc dot gnu.org
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

2016-05-21 Thread denisc at gcc dot gnu.org
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

2016-05-21 Thread gjl at gcc dot gnu.org
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)