[Bug target/47381] [x32] internal compiler error: in gen_lowpart_general, at rtlhooks.c:59
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47381 --- Comment #7 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2011-08-06 14:57:55 UTC --- Author: hjl Date: Sat Aug 6 14:57:52 2011 New Revision: 177514 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=177514 Log: Add testcases for PR 47381. 2011-08-06 H.J. Lu hongjiu...@intel.com PR target/47381 * gcc.dg/pr47381-1.c: New. * gcc.dg/pr47381-2.c: Likewise. * gcc.target/i386/pr47381.c: Likewise. Added: trunk/gcc/testsuite/gcc.dg/pr47381-1.c trunk/gcc/testsuite/gcc.dg/pr47381-2.c trunk/gcc/testsuite/gcc.target/i386/pr47381.c Modified: trunk/gcc/testsuite/ChangeLog
[Bug target/47381] [x32] internal compiler error: in gen_lowpart_general, at rtlhooks.c:59
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47381 --- Comment #6 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2011-07-29 16:00:45 UTC --- Author: hjl Date: Fri Jul 29 16:00:41 2011 New Revision: 176932 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176932 Log: Rewrite x86 lea support for x32. 2011-07-26 Uros Bizjak ubiz...@gmail.com H.J. Lu hongjiu...@intel.com PR target/47381 PR target/49832 PR target/49833 * config/i386/i386.md (i): Change SImode attribute to e. (g): Change SImode attribute to rme. (di): Change SImode attribute to nF. (general_operand): Change SImode attribute to x86_64_general_operand. (general_szext_operand): Change SImode attribute to x86_64_szext_general_operand. (immediate_operand): Change SImode attribute to x86_64_immediate_operand. (nonmemory_operand): Change SImode attribute to x86_64_nonmemory_operand. (*movdi_internal_rex64): Remove mode from pic_32bit_operand check. (*movsi_internal): Ditto. Use e constraint in alternative 2. (*lea_1): Use SWI48 mode iterator. (*lea_1_zext): New insn pattern. (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2. (*btmode): Ditto. (*addmode1): Use x86_64_general_operand predicate for operand 2. Update operand constraints. (addsi_1_zext): Ditto. (*addmode2): Ditto. (*addsi_3_zext): Ditto. (*subsi_1_zext): Ditto. (*subsi_2_zext): Ditto. (*subsi_3_zext): Ditto. (*addsi3_carry_zext): Ditto. (*plusminus_insnsi3_zext_cc_overflow): Ditto. (*mulsi3_1_zext): Ditto. (*andsi_1): Ditto. (*andsi_1_zext): Ditto. (*andsi_2_zext): Ditto. (*any_or:codesi_1_zext): Ditto. (*any_or:codesi_2_zext): Ditto. (*testmode_1): Use general_operand predicate for operand 1. (*andmode_2): Ditto. (movmodecc): Use general_operand predicate for operands 1 and 2. (add-lea splitter): Check operand modes in insn constraint. Extend operands less than SImode wide to SImode. (add-lea zext splitter): Do not extend input operands to DImode. (*lea_general_1): Handle only QImode and HImode operands. (*lea_general_2): Ditto. (*lea_general_3): Ditto. (*lea_general_1_zext): Remove. (*lea_general_2_zext): Ditto. (*lea_general_3_zext): Ditto. (*lea_general_4): Check operand modes in insn constraint. Extend operands less than SImode wide to SImode. (ashift-lea splitter): Ditto. * config/i386/i386.c (ix86_print_operand_address): Print address registers with 'q' modifier on 64bit targets. * config/i386/predicates.md (pic_32bit_opreand): Define as special predicate. Reject non-SI and non-DI modes. Modified: branches/x32/gcc/ChangeLog.x32 branches/x32/gcc/config/i386/i386.c branches/x32/gcc/config/i386/i386.md branches/x32/gcc/config/i386/predicates.md
[Bug target/47381] [x32] internal compiler error: in gen_lowpart_general, at rtlhooks.c:59
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47381 --- Comment #4 from uros at gcc dot gnu.org 2011-07-26 12:00:36 UTC --- Author: uros Date: Tue Jul 26 12:00:33 2011 New Revision: 176788 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=176788 Log: PR target/47381 PR target/49832 PR target/49833 * config/i386/i386.md (i): Change SImode attribute to e. (g): Change SImode attribute to rme. (di): Change SImode attribute to nF. (general_operand): Change SImode attribute to x86_64_general_operand. (general_szext_operand): Change SImode attribute to x86_64_szext_general_operand. (immediate_operand): Change SImode attribute to x86_64_immediate_operand. (nonmemory_operand): Change SImode attribute to x86_64_nonmemory_operand. (*movdi_internal_rex64): Remove mode from pic_32bit_operand check. (*movsi_internal): Ditto. Use e constraint in alternative 2. (*lea_1): Use SWI48 mode iterator. (*lea_1_zext): New insn pattern. (testsi_ccno_1): Use x86_64_nonmemory_operand predicate for operand 2. (*btmode): Ditto. (*addmode1): Use x86_64_general_operand predicate for operand 2. Update operand constraints. (addsi_1_zext): Ditto. (*addmode2): Ditto. (*addsi_3_zext): Ditto. (*subsi_1_zext): Ditto. (*subsi_2_zext): Ditto. (*subsi_3_zext): Ditto. (*addsi3_carry_zext): Ditto. (*plusminus_insnsi3_zext_cc_overflow): Ditto. (*mulsi3_1_zext): Ditto. (*andsi_1): Ditto. (*andsi_1_zext): Ditto. (*andsi_2_zext): Ditto. (*any_or:codesi_1_zext): Ditto. (*any_or:codesi_2_zext): Ditto. (*testmode_1): Use general_operand predicate for operand 1. (*andmode_2): Ditto. (movmodecc): Use general_operand predicate for operands 1 and 2. (add-lea splitter): Check operand modes in insn constraint. Extend operands less than SImode wide to SImode. (add-lea zext splitter): Do not extend input operands to DImode. (*lea_general_1): Handle only QImode and HImode operands. (*lea_general_2): Ditto. (*lea_general_3): Ditto. (*lea_general_1_zext): Remove. (*lea_general_2_zext): Ditto. (*lea_general_3_zext): Ditto. (*lea_general_4): Check operand modes in insn constraint. Extend operands less than SImode wide to SImode. (ashift-lea splitter): Ditto. * config/i386/i386.c (ix86_print_operand_address): Print address registers with 'q' modifier on 64bit targets. * config/i386/predicates.md (pic_32bit_opreand): Define as special predicate. Reject non-SI and non-DI modes. Modified: trunk/gcc/ChangeLog trunk/gcc/config/i386/i386.c trunk/gcc/config/i386/i386.md trunk/gcc/config/i386/predicates.md
[Bug target/47381] [x32] internal compiler error: in gen_lowpart_general, at rtlhooks.c:59
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47381 Uros Bizjak ubizjak at gmail dot com changed: What|Removed |Added Target||x32 Status|UNCONFIRMED |RESOLVED URL||http://gcc.gnu.org/ml/gcc-p ||atches/2011-07/msg02249.htm ||l Resolution||FIXED Target Milestone|--- |4.7.0 --- Comment #5 from Uros Bizjak ubizjak at gmail dot com 2011-07-26 12:07:11 UTC --- Committed to trunk.
[Bug target/47381] [x32] internal compiler error: in gen_lowpart_general, at rtlhooks.c:59
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47381 --- Comment #1 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2011-01-20 17:28:54 UTC --- Author: hjl Date: Thu Jan 20 17:28:49 2011 New Revision: 169059 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169059 Log: Fix LEA alternative in *addmode_1/*addsi_1_zext for x32. gcc/ 2011-01-20 H.J. Lu hongjiu...@intel.com PR target/47381 * config/i386/constraints.md (Yl): New. * config/i386/i386.md (l): New. (*addmode_1): Replace i with l. (*addsi_1_zext): Replace lYe with lYl. gcc/testsuite/ 2011-01-20 H.J. Lu hongjiu...@intel.com PR target/47381 * gcc.target/i386/pr47381-1.c: New. * gcc.target/i386/pr47381-2.c: Likewise. Added: branches/x32/gcc/testsuite/gcc.target/i386/pr47381-1.c branches/x32/gcc/testsuite/gcc.target/i386/pr47381-2.c Modified: branches/x32/gcc/ChangeLog.x32 branches/x32/gcc/config/i386/constraints.md branches/x32/gcc/config/i386/i386.md branches/x32/gcc/testsuite/ChangeLog.x32
[Bug target/47381] [x32] internal compiler error: in gen_lowpart_general, at rtlhooks.c:59
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47381 --- Comment #2 from H.J. Lu hjl.tools at gmail dot com 2011-01-20 18:59:10 UTC --- Another crash [hjl@gnu-6 ilp32-13]$ cat x.i struct foo_t { int limit; } foo[3]; void bar () { int i; for (i = 0; i 3; i++) { __builtin_memset (foo[i], 0, sizeof(*foo)); } } [hjl@gnu-6 ilp32-13]$ /export/build/gnu/gcc-x32/build-x86_64-linux/gcc/xgcc -B/export/build/gnu/gcc-x32/build-x86_64-linux/gcc/ -S -o x.s -mx32 -O2 -dp -march=atom x.i x.i: In function ‘bar’: x.i:10:1: internal compiler error: in gen_lowpart_general, at rtlhooks.c:59 Please submit a full bug report, with preprocessed source if appropriate. See http://gcc.gnu.org/bugs.html for instructions. [hjl@gnu-6 ilp32-13]$
[Bug target/47381] [x32] internal compiler error: in gen_lowpart_general, at rtlhooks.c:59
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=47381 --- Comment #3 from hjl at gcc dot gnu.org hjl at gcc dot gnu.org 2011-01-20 19:06:05 UTC --- Author: hjl Date: Thu Jan 20 19:06:03 2011 New Revision: 169062 URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=169062 Log: Use x32_lea_nonmemory_operand on 64bit LEA split. gcc/ 2011-01-20 H.J. Lu hongjiu...@intel.com PR target/47381 * config/i386/i386.md (64bit LEA split): Replace nonmemory_operand with x32_lea_nonmemory_operand. gcc/testsuite/ 2011-01-20 H.J. Lu hongjiu...@intel.com PR target/47381 * gcc.target/i386/pr47381-3.c: New. Added: branches/x32/gcc/testsuite/gcc.target/i386/pr47381-3.c Modified: branches/x32/gcc/ChangeLog.x32 branches/x32/gcc/config/i386/i386.md branches/x32/gcc/testsuite/ChangeLog.x32