public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/44419]  New: ICE when building for Freescale e500v2
@ 2010-06-04 20:37 edmar at freescale dot com
  2010-06-07  2:21 ` [Bug target/44419] " amodra at gmail dot com
  0 siblings, 1 reply; 2+ messages in thread
From: edmar at freescale dot com @ 2010-06-04 20:37 UTC (permalink / raw)
  To: gcc-bugs

When building gcc for e500v2:
--target=powerpc-unknown-linux-gnuspe --enable-e500_double

The build stops with an ICE:

/tmp/edmar/build_jobs/Xe500v2/obj_gccsys/./gcc/xgcc
-B/tmp/edmar/build_jobs/Xe500v2/obj_gccsys/./gcc/
-B/tmp/edmar/build_jobs/installs_final/gnu-gcc-4.5-binutils-2.19-eglibc-2.9-Xe500v2-powerpc-unknown-linux-gnuspe/i686-pc-linux2.4/powerpc-unknown-linux-gnuspe/bin/
-B/tmp/edmar/build_jobs/installs_final/gnu-gcc-4.5-binutils-2.19-eglibc-2.9-Xe500v2-powerpc-unknown-linux-gnuspe/i686-pc-linux2.4/powerpc-unknown-linux-gnuspe/lib/
-isystem
/tmp/edmar/build_jobs/installs_final/gnu-gcc-4.5-binutils-2.19-eglibc-2.9-Xe500v2-powerpc-unknown-linux-gnuspe/i686-pc-linux2.4/powerpc-unknown-linux-gnuspe/include
-isystem
/tmp/edmar/build_jobs/installs_final/gnu-gcc-4.5-binutils-2.19-eglibc-2.9-Xe500v2-powerpc-unknown-linux-gnuspe/i686-pc-linux2.4/powerpc-unknown-linux-gnuspe/sys-include-g
-O2 -O2  -g -O2 -DIN_GCC -DCROSS_DIRECTORY_STRUCTURE  -W -Wall -Wwrite-strings
-Wcast-qual -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition 
-isystem ./include  -fPIC -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2
-D__GCC_FLOAT_NOT_NEEDED  -mlong-double-128 -I. -I. -I../.././gcc
-I../../../src_gcc/libgcc -I../../../src_gcc/libgcc/.
-I../../../src_gcc/libgcc/../gcc -I../../../src_gcc/libgcc/../include 
-DHAVE_CC_TLS  -o _powixf2.o -MT _powixf2.o -MD -MP -MF _powixf2.dep
-DL_powixf2 -c ../../../src_gcc/libgcc/../gcc/libgcc2.c \
          -fvisibility=hidden -DHIDE_EXPORTS
../../../src_gcc/libgcc/../gcc/libgcc2.c: In function '__powidf2':
../../../src_gcc/libgcc/../gcc/libgcc2.c:1739:1: internal compiler error: in
rs6000_split_multireg_move, at config/rs6000/rs6000.c:16712
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make[2]: *** [_powidf2.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory
`/tmp/edmar/build_jobs/Xe500v2/obj_gccsys/powerpc-unknown-linux-gnuspe/libgcc'
make[1]: *** [all-target-libgcc] Error 2
make[1]: Leaving directory `/tmp/edmar/build_jobs/Xe500v2/obj_gccsys'
make: *** [all] Error 2


I traced the problem back to revision 157530, which splits dp float point moves
into 2 32 bit gpr. But on e500v2, the gpr are 64 bit wide, and dp floats are
mapped to one single gpr.

The problem does not exists in e500v1 which also has 64 bit gpr because this
cpu does not have dp hardware and soft float ABI dictates dpfp values should be
kept in 2 gpr.

This problem also exists in the 4.5 branch.

The following change fix the ICE for both gcc-4.5 and gcc-4.6. It was
regression tested on 32 bits powerpc as well as on e500v2.

--- gcc-20100425/gcc/config/rs6000/rs6000.md-orig       2010-04-26
09:58:41.000000000 -0500
+++ gcc-20100425/gcc/config/rs6000/rs6000.md    2010-04-26 10:01:55.000000000
-0500
@@ -218,7 +218,8 @@
   (TD "TARGET_DFP")])

 ; These modes do not fit in integer registers in 32-bit mode.
-(define_mode_iterator DIFD [DI DF DD])
+; but on e500v2, the gpr are 64 bit registers
+(define_mode_iterator DIFD [DI (DF "!TARGET_E500_DOUBLE") DD])

 ; Various instructions that come in SI and DI forms.
 ; A generic w/d attribute, for things like cmpw/cmpd.


-- 
           Summary: ICE when building for Freescale e500v2
           Product: gcc
           Version: 4.6.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: edmar at freescale dot com
  GCC host triplet: powerpc-unknown-linux-gnuspe
GCC target triplet: powerpc-unknown-linux-gnuspe


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44419


^ permalink raw reply	[flat|nested] 2+ messages in thread

* [Bug target/44419] ICE when building for Freescale e500v2
  2010-06-04 20:37 [Bug c/44419] New: ICE when building for Freescale e500v2 edmar at freescale dot com
@ 2010-06-07  2:21 ` amodra at gmail dot com
  0 siblings, 0 replies; 2+ messages in thread
From: amodra at gmail dot com @ 2010-06-07  2:21 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from amodra at gmail dot com  2010-06-07 02:21 -------


*** This bug has been marked as a duplicate of 44067 ***


-- 

amodra at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |RESOLVED
         Resolution|                            |DUPLICATE


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=44419


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2010-06-07  2:21 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-06-04 20:37 [Bug c/44419] New: ICE when building for Freescale e500v2 edmar at freescale dot com
2010-06-07  2:21 ` [Bug target/44419] " amodra at gmail dot com

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).