Build last succeeded with revision 110787. Building cris-axis-elf with revision 110879 fails building newlib: /home/hp/combined/cris-sim/./gcc/xgcc -B/home/hp/combined/cris-sim/./gcc/ -nostdinc -B/home/hp/combined/cris-sim/cris-elf/v10/new\ lib/ -isystem /home/hp/combined/cris-sim/cris-elf/v10/newlib/targ-include -isystem /home/hp/combined/combined/newlib/libc/include\ -B/usr/local/cris-elf/bin/ -B/usr/local/cris-elf/lib/ -isystem /usr/local/cris-elf/include -isystem /usr/local/cris-elf/sys-incl\ ude -L/home/hp/combined/cris-sim/./ld -march=v10 -mbest-lib-options -DPACKAGE=\"newlib\" -DVERSION=\"1.14.0\" -I. -I/home/hp/co\ mbined/combined/newlib/libc/search -O2 -DHAVE_RENAME -DHAVE_GETTIMEOFDAY -D_USE_WRITE -DCOMPACT_CTYPE -fno-builtin -O2 -g -\ O2 -march=v10 -mbest-lib-options -c /home/hp/combined/combined/newlib/libc/search/qsort.c /home/hp/combined/combined/newlib/libc/search/qsort.c: In function 'qsort': /home/hp/combined/combined/newlib/libc/search/qsort.c:222: internal compiler error: in int_mode_for_mode, at stor-layout.c:250
Looking closer, it's a set of cc0 that the loop-invariants-move code tries to move, but thankfully the call to emit_move_insn horks. The cause of the exposure is that -fmove-loop-invariants is now enabled by default; revision 110787 and revision 108225 also fail if given -fmove-loop-invariants. Patch testing in progress, for reference cutnpasted below. I'm not sure it's best to stop the move this late, but let's discuss this when I submit the patch to [EMAIL PROTECTED] Index: loop-invariant.c =================================================================== --- loop-invariant.c (revision 110879) +++ loop-invariant.c (working copy) @@ -1076,6 +1076,12 @@ move_invariant_reg (struct loop *loop, u || !repr->move) return; +#if HAVE_cc0 + /* We can't move a CC0 setter without the user. */ + if (sets_cc0_p (inv->insn)) + return; +#endif + /* If this is a representative of the class of equivalent invariants, really move the invariant. Otherwise just replace its use with the register used for the representative. */ -- Summary: cc0 targets broken; loop-invariants-move code doesn't handle cc0. Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization AssignedTo: hp at gcc dot gnu dot org ReportedBy: hp at gcc dot gnu dot org GCC target triplet: cris-* http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26232