public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
@ 2012-11-05  8:28 mikpe at it dot uu.se
  2012-11-05 10:51 ` [Bug bootstrap/55211] " jakub at gcc dot gnu.org
                   ` (29 more replies)
  0 siblings, 30 replies; 31+ messages in thread
From: mikpe at it dot uu.se @ 2012-11-05  8:28 UTC (permalink / raw)
  To: gcc-bugs


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

             Bug #: 55211
           Summary: [4.8 regression] sparc64-linux bootstrap fails with
                    SIGILL while compiling __mulvti3
    Classification: Unclassified
           Product: gcc
           Version: 4.8.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P3
         Component: bootstrap
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: mikpe@it.uu.se


Attempting to bootstrap 4.8-20121104 on sparc64-linux fails with:

/mnt/scratch/objdir48/./gcc/xgcc -B/mnt/scratch/objdir48/./gcc/
-B/mnt/scratch/install48/sparc64-unknown-linux-gnu/bin/
-B/mnt/scratch/install48/sparc64-unknown-linux-gnu/lib/ -isystem
/mnt/scratch/install48/sparc64-unknown-linux-gnu/include -isystem
/mnt/scratch/install48/sparc64-unknown-linux-gnu/sys-include    -g -O2 -m64 -O2
 -g -O2 -DIN_GCC   -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual
-Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem
./include   -fPIC -g -DIN_LIBGCC2 -fbuilding-libgcc -fno-stack-protector  
-fPIC -I. -I. -I../../.././gcc -I/mnt/scratch/gcc-4.8-20121104/libgcc
-I/mnt/scratch/gcc-4.8-20121104/libgcc/.
-I/mnt/scratch/gcc-4.8-20121104/libgcc/../gcc
-I/mnt/scratch/gcc-4.8-20121104/libgcc/../include  -DHAVE_CC_TLS  -o _mulvdi3.o
-MT _mulvdi3.o -MD -MP -MF _mulvdi3.dep -DL_mulvdi3 -c
/mnt/scratch/gcc-4.8-20121104/libgcc/libgcc2.c -fvisibility=hidden
-DHIDE_EXPORTS
/mnt/scratch/gcc-4.8-20121104/libgcc/libgcc2.c: In function '__mulvti3':
/mnt/scratch/gcc-4.8-20121104/libgcc/libgcc2.c:397:1: internal compiler error:
Illegal instruction
 }
 ^

/mnt/scratch/gcc-4.8-20121104/libgcc/libgcc2.c:397:1: internal compiler error:
Aborted
xgcc: internal compiler error: Aborted (program cc1)
make[5]: *** [_mulvdi3.o] Aborted
make[5]: Leaving directory
`/mnt/scratch/objdir48/sparc64-unknown-linux-gnu/64/libgcc'
make[4]: *** [multi-do] Error 1
make[4]: Leaving directory
`/mnt/scratch/objdir48/sparc64-unknown-linux-gnu/libgcc'
make[3]: *** [all-multi] Error 2
make[3]: Leaving directory
`/mnt/scratch/objdir48/sparc64-unknown-linux-gnu/libgcc'
make[2]: *** [all-stage2-target-libgcc] Error 2
make[2]: Leaving directory `/mnt/scratch/objdir48'
make[1]: *** [stage2-bubble] Error 2
make[1]: Leaving directory `/mnt/scratch/objdir48'
make: *** [bootstrap] Error 2

Re-running cc1 in gdb shows:

Program received signal SIGILL, Illegal instruction.
0x00575f94 in emit_note_insn_var_location(void**, void*) ()
Missing separate debuginfos, use: debuginfo-install glibc-2.13.90-4.1.sparcv9
(gdb) bt
#0  0x00575f94 in emit_note_insn_var_location(void**, void*) ()
#1  0x00734b7c in htab_traverse_noresize ()
#2  0x00576a64 in emit_notes_for_changes(rtx_def*, emit_note_where,
shared_hash_def*) ()
#3  0x00577118 in vt_emit_notes() ()
#4  0x0057a378 in variable_tracking_main() ()
#5  0x002f8454 in execute_one_pass(opt_pass*) ()
#6  0x002f8954 in execute_pass_list(opt_pass*) ()
#7  0x002f8978 in execute_pass_list(opt_pass*) ()
#8  0x002f8978 in execute_pass_list(opt_pass*) ()
#9  0x00111ad8 in expand_function(cgraph_node*) ()
#10 0x001134fc in compile() ()
#11 0x00113c8c in finalize_compilation_unit() ()
#12 0x00034a14 in c_write_global_declarations() ()
#13 0x003a62bc in compile_file() ()
#14 0x003a7c04 in toplev_main(int, char**) ()
#15 0xf7d44234 in __libc_start_main () from /lib/libc.so.6
#16 0x00023798 in _start ()

Disassembling the faulting instruction shows:

(gdb) disassemble 0x575f80,0x575fa0
Dump of assembler code from 0x575f80 to 0x575fa0:
   0x00575f80 <_ZL27emit_note_insn_var_locationPPvS_+1584>:     clr  %i3
   0x00575f84 <_ZL27emit_note_insn_var_locationPPvS_+1588>:     add  %fp, -192,
%i2
   0x00575f88 <_ZL27emit_note_insn_var_locationPPvS_+1592>:     add  %fp, -128,
%i0
   0x00575f8c <_ZL27emit_note_insn_var_locationPPvS_+1596>:     add  %i5, %i5,
%g1
   0x00575f90 <_ZL27emit_note_insn_var_locationPPvS_+1600>:     ld  [ %i2 + %i5
], %i1
=> 0x00575f94 <_ZL27emit_note_insn_var_locationPPvS_+1604>:     ldd  [ %i0 +
%g1 ], %o1
   0x00575f98 <_ZL27emit_note_insn_var_locationPPvS_+1608>:     call  0x1835a0
<_Z17gen_rtx_CONST_INT12machine_modex>
   0x00575f9c <_ZL27emit_note_insn_var_locationPPvS_+1612>:     clr  %o0
End of assembler dump.
(gdb) print/x $i0
$1 = 0xffffc5b8
(gdb) print/x $g1
$2 = 0x0

The same problem occurred with the previous weekly snapshot, 4.8-20121028,
while the one before that (4.8-20121021) was Ok.

Configuration parameters:
/mnt/scratch/gcc-4.8-20121104/configure --prefix=/mnt/scratch/install48
--with-gmp=/home/mikpe/pkgs/linux-sparc64/gmp-5.0.5
--with-mpfr=/home/mikpe/pkgs/linux-sparc64/mpfr-3.1.1
--with-mpc=/home/mikpe/pkgs/linux-sparc64/mpc-1.0.1 --with-cpu=v8
--enable-multilib --disable-plugin --disable-lto --disable-nls
--enable-threads=posix --enable-checking=release --disable-libmudflap
--enable-languages=c,c++,fortran,ada


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
@ 2012-11-05 10:51 ` jakub at gcc dot gnu.org
  2012-11-05 13:15 ` mikpe at it dot uu.se
                   ` (28 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-11-05 10:51 UTC (permalink / raw)
  To: gcc-bugs


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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |davem at gcc dot gnu.org,
                   |                            |jakub at gcc dot gnu.org

--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-11-05 10:51:15 UTC ---
Perhaps http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=192824 ?


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
  2012-11-05 10:51 ` [Bug bootstrap/55211] " jakub at gcc dot gnu.org
@ 2012-11-05 13:15 ` mikpe at it dot uu.se
  2012-11-05 14:12 ` mikpe at it dot uu.se
                   ` (27 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: mikpe at it dot uu.se @ 2012-11-05 13:15 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #2 from Mikael Pettersson <mikpe at it dot uu.se> 2012-11-05 13:14:22 UTC ---
I'm now trying a bootstrap with r192871, r192824, and r192757 reverted, as
those were the only recent SPARC-specific changes I could find.


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
  2012-11-05 10:51 ` [Bug bootstrap/55211] " jakub at gcc dot gnu.org
  2012-11-05 13:15 ` mikpe at it dot uu.se
@ 2012-11-05 14:12 ` mikpe at it dot uu.se
  2012-11-05 16:28 ` jakub at gcc dot gnu.org
                   ` (26 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: mikpe at it dot uu.se @ 2012-11-05 14:12 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #3 from Mikael Pettersson <mikpe at it dot uu.se> 2012-11-05 14:12:09 UTC ---
(In reply to comment #0)
> => 0x00575f94 <_ZL27emit_note_insn_var_locationPPvS_+1604>:     ldd  [ %i0 +
> %g1 ], %o1

The destination register field is odd.  That's invalid, it has to be even (it
denotes the start of an even/odd register pair).


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (2 preceding siblings ...)
  2012-11-05 14:12 ` mikpe at it dot uu.se
@ 2012-11-05 16:28 ` jakub at gcc dot gnu.org
  2012-11-05 18:11 ` ebotcazou at gcc dot gnu.org
                   ` (25 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-11-05 16:28 UTC (permalink / raw)
  To: gcc-bugs


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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.8.0


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (3 preceding siblings ...)
  2012-11-05 16:28 ` jakub at gcc dot gnu.org
@ 2012-11-05 18:11 ` ebotcazou at gcc dot gnu.org
  2012-11-05 18:22 ` davem at gcc dot gnu.org
                   ` (24 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-11-05 18:11 UTC (permalink / raw)
  To: gcc-bugs


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

Eric Botcazou <ebotcazou at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-11-05
                 CC|                            |ebotcazou at gcc dot
                   |                            |gnu.org
     Ever Confirmed|0                           |1

--- Comment #4 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-11-05 18:10:32 UTC ---
Yep.


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (4 preceding siblings ...)
  2012-11-05 18:11 ` ebotcazou at gcc dot gnu.org
@ 2012-11-05 18:22 ` davem at gcc dot gnu.org
  2012-11-05 18:24 ` davem at gcc dot gnu.org
                   ` (23 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: davem at gcc dot gnu.org @ 2012-11-05 18:22 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #5 from davem at gcc dot gnu.org 2012-11-05 18:22:17 UTC ---
I'm really surprised to see the integer ldd/std patterns matching in a 64-bit
build.


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (5 preceding siblings ...)
  2012-11-05 18:22 ` davem at gcc dot gnu.org
@ 2012-11-05 18:24 ` davem at gcc dot gnu.org
  2012-11-05 19:13 ` mikpe at it dot uu.se
                   ` (22 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: davem at gcc dot gnu.org @ 2012-11-05 18:24 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #6 from davem at gcc dot gnu.org 2012-11-05 18:24:11 UTC ---
Oh I see, you're forcing v8 in the configure line.

It's so much easier to "sparc32 bash" before running configure so that the
build/host/target ends up being correct and not sparc64-something.


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (6 preceding siblings ...)
  2012-11-05 18:24 ` davem at gcc dot gnu.org
@ 2012-11-05 19:13 ` mikpe at it dot uu.se
  2012-11-05 19:16 ` davem at gcc dot gnu.org
                   ` (21 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: mikpe at it dot uu.se @ 2012-11-05 19:13 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #7 from Mikael Pettersson <mikpe at it dot uu.se> 2012-11-05 19:13:30 UTC ---
(In reply to comment #2)
> I'm now trying a bootstrap with r192871, r192824, and r192757 reverted, as
> those were the only recent SPARC-specific changes I could find.

Testing confirmed that r192824 is the culprit.


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (7 preceding siblings ...)
  2012-11-05 19:13 ` mikpe at it dot uu.se
@ 2012-11-05 19:16 ` davem at gcc dot gnu.org
  2012-11-05 21:38 ` davem at gcc dot gnu.org
                   ` (20 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: davem at gcc dot gnu.org @ 2012-11-05 19:16 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #8 from davem at gcc dot gnu.org 2012-11-05 19:16:14 UTC ---
Thanks for tracking this down, I'll fix or revert.


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (8 preceding siblings ...)
  2012-11-05 19:16 ` davem at gcc dot gnu.org
@ 2012-11-05 21:38 ` davem at gcc dot gnu.org
  2012-11-05 21:41 ` jakub at gcc dot gnu.org
                   ` (19 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: davem at gcc dot gnu.org @ 2012-11-05 21:38 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #9 from davem at gcc dot gnu.org 2012-11-05 21:38:40 UTC ---
I'm having a hard time reproducing this, I've tried 32-bit
bootstraps with several variations of your listed configure
command line.

But meanwhile I want some clarification on your environment.

Is uname outputting "sparc" or "sparc64" when you run
configure?  It really needs to be the former if you are
telling the compiler to output 32-bit code by default
(which is what --with-cpu=v8 does).

Thanks.


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (9 preceding siblings ...)
  2012-11-05 21:38 ` davem at gcc dot gnu.org
@ 2012-11-05 21:41 ` jakub at gcc dot gnu.org
  2012-11-05 21:47 ` ebotcazou at gcc dot gnu.org
                   ` (18 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-11-05 21:41 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #10 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-11-05 21:41:09 UTC ---
I guess best would be if you could attach your var-tracking.ii and the exact
cc1plus command line used to compile it.


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (10 preceding siblings ...)
  2012-11-05 21:41 ` jakub at gcc dot gnu.org
@ 2012-11-05 21:47 ` ebotcazou at gcc dot gnu.org
  2012-11-05 21:50 ` davem at gcc dot gnu.org
                   ` (17 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-11-05 21:47 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #11 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-11-05 21:47:17 UTC ---
> I'm having a hard time reproducing this, I've tried 32-bit
> bootstraps with several variations of your listed configure
> command line.

I can reproduce it on gcc62 of the CompileFarm (Debian Linux):

ebotcazou@grobluk:~/build$ gcc/xgcc -v
Using built-in specs.
COLLECT_GCC=gcc/xgcc
Target: sparc64-linux-gnu
Configured with: /home/ebotcazou/src/configure --build=sparc64-linux-gnu
--prefix=/home/ebotcazou/install
--enable-languages=c,c++,objc,obj-c++,fortran,ada
--with-gmp=/opt/cfarm/gmp-4.2.4 --with-mpfr=/opt/cfarm/mpfr-2.4.1
--with-mpc=/opt/cfarm/mpc-0.8 --with-cpu=v8 --enable-__cxa_atexit --disable-nls
Thread model: posix
gcc version 4.8.0 20121104 (experimental) (GCC) 

> But meanwhile I want some clarification on your environment.
> 
> Is uname outputting "sparc" or "sparc64" when you run
> configure?  It really needs to be the former if you are
> telling the compiler to output 32-bit code by default
> (which is what --with-cpu=v8 does).

ebotcazou@grobluk:~/build$ uname -a
Linux grobluk 2.6.26-2-sparc64-smp #1 SMP Sun Mar 4 22:02:58 UTC 2012 sparc64
GNU/Linux


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (11 preceding siblings ...)
  2012-11-05 21:47 ` ebotcazou at gcc dot gnu.org
@ 2012-11-05 21:50 ` davem at gcc dot gnu.org
  2012-11-05 21:55 ` ebotcazou at gcc dot gnu.org
                   ` (16 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: davem at gcc dot gnu.org @ 2012-11-05 21:50 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #12 from davem at gcc dot gnu.org 2012-11-05 21:50:38 UTC ---
That configuration doesn't make any sense.

It's going to pass -m64 down into the libgcc2 build, then
the internal --with-cpu=v8 setting is going to override
all that.

The correct thing to do is to execute configure in the
correct environment, or pass an explicit build triplet.


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (12 preceding siblings ...)
  2012-11-05 21:50 ` davem at gcc dot gnu.org
@ 2012-11-05 21:55 ` ebotcazou at gcc dot gnu.org
  2012-11-05 22:04 ` davem at gcc dot gnu.org
                   ` (15 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-11-05 21:55 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #13 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-11-05 21:55:13 UTC ---
Created attachment 28621
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=28621
Preprocessed file

/home/ebotcazou/build/./prev-gcc/cc1plus -fpreprocessed var-tracking.ii -quiet
-dumpbase var-tracking.c -mcpu=v8 -auxbase-strip var-tracking.o -g -gtoggle -O2
-Wextra -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual
-Wsuggest-attribute=format -Wpedantic -Wno-long-long -Wno-variadic-macros
-Wno-overlength-strings -Werror -version -fno-exceptions -fno-rtti
-fasynchronous-unwind-tables -fno-common -o var-tracking.s


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (13 preceding siblings ...)
  2012-11-05 21:55 ` ebotcazou at gcc dot gnu.org
@ 2012-11-05 22:04 ` davem at gcc dot gnu.org
  2012-11-05 22:08 ` ebotcazou at gcc dot gnu.org
                   ` (14 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: davem at gcc dot gnu.org @ 2012-11-05 22:04 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #14 from davem at gcc dot gnu.org 2012-11-05 22:04:10 UTC ---
The bug does not trigger using that var-tracking test file using a properly
configures 32-bit compiler, I just checked.

This sparc64+--with-cpu=v8 is not a legal configuration, it worked by luck and
duct-tape previously.


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (14 preceding siblings ...)
  2012-11-05 22:04 ` davem at gcc dot gnu.org
@ 2012-11-05 22:08 ` ebotcazou at gcc dot gnu.org
  2012-11-05 22:19 ` ebotcazou at gcc dot gnu.org
                   ` (13 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-11-05 22:08 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #15 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-11-05 22:08:00 UTC ---
> That configuration doesn't make any sense.
> 
> It's going to pass -m64 down into the libgcc2 build, then
> the internal --with-cpu=v8 setting is going to override
> all that.

Nope, this is the standard Debian configuration and works fine.  It's a pure
32-bit compiler like the sparc compiler, see config/sparc/linux64.h:

/* On Linux, the combination sparc64-* --with-cpu=v8 is supported and
   selects a 32-bit compiler.  */
#if defined(TARGET_64BIT_DEFAULT) && TARGET_CPU_DEFAULT >= TARGET_CPU_v9
#undef TARGET_DEFAULT
#define TARGET_DEFAULT \
  (MASK_V9 + MASK_PTR64 + MASK_64BIT + MASK_STACK_BIAS + \
   MASK_APP_REGS + MASK_FPU + MASK_LONG_DOUBLE_128)
#endif

/* Support for a compile-time default CPU, et cetera.  The rules are:
   --with-cpu is ignored if -mcpu is specified.
   --with-tune is ignored if -mtune is specified.
   --with-float is ignored if -mhard-float, -msoft-float, -mfpu, or -mno-fpu
     are specified.
   In the SPARC_BI_ARCH compiler we cannot pass %{!mcpu=*:-mcpu=%(VALUE)}
   here, otherwise say -mcpu=v7 would be passed even when -m64.
   CC1_SPEC above takes care of this instead.  */
#undef OPTION_DEFAULT_SPECS
#if DEFAULT_ARCH32_P
#define OPTION_DEFAULT_SPECS \
  {"cpu", "%{!m64:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
  {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \
  {"float",
"%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float}}}}" }
#else
#define OPTION_DEFAULT_SPECS \
  {"cpu", "%{!m32:%{!mcpu=*:-mcpu=%(VALUE)}}" }, \
  {"tune", "%{!mtune=*:-mtune=%(VALUE)}" }, \
  {"float",
"%{!msoft-float:%{!mhard-float:%{!mfpu:%{!mno-fpu:-m%(VALUE)-float}}}}" }
#endif


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (15 preceding siblings ...)
  2012-11-05 22:08 ` ebotcazou at gcc dot gnu.org
@ 2012-11-05 22:19 ` ebotcazou at gcc dot gnu.org
  2012-11-05 22:21 ` davem at gcc dot gnu.org
                   ` (12 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-11-05 22:19 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #16 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-11-05 22:19:38 UTC ---
> The bug does not trigger using that var-tracking test file using a properly
> configures 32-bit compiler, I just checked.

Configure a regular cross to sparc64 on x86-64, compile the testcase with -O2
-m32 -mcpu=v8, you'll get at line 23220:

    add    %i5, %i5, %g1
    ld    [%i2+%i5], %i1
    ldd    [%i0+%g1], %o1


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (16 preceding siblings ...)
  2012-11-05 22:19 ` ebotcazou at gcc dot gnu.org
@ 2012-11-05 22:21 ` davem at gcc dot gnu.org
  2012-11-05 22:31 ` ebotcazou at gcc dot gnu.org
                   ` (11 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: davem at gcc dot gnu.org @ 2012-11-05 22:21 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #17 from davem at gcc dot gnu.org 2012-11-05 22:21:32 UTC ---
If sparc+--with-cpu=v8 and sparc64+--with-cpu=v8 were "equal" then my build
would trigger the problem too :-)

I'll look more deeply into this, thanks Eric.


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (17 preceding siblings ...)
  2012-11-05 22:21 ` davem at gcc dot gnu.org
@ 2012-11-05 22:31 ` ebotcazou at gcc dot gnu.org
  2012-11-06  1:44 ` davem at gcc dot gnu.org
                   ` (10 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-11-05 22:31 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #18 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-11-05 22:31:13 UTC ---
> If sparc+--with-cpu=v8 and sparc64+--with-cpu=v8 were "equal" then my build
> would trigger the problem too :-)

Yep, you might want to configure with --enable-targets=all and see whether this
will change something on your side.


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (18 preceding siblings ...)
  2012-11-05 22:31 ` ebotcazou at gcc dot gnu.org
@ 2012-11-06  1:44 ` davem at gcc dot gnu.org
  2012-11-06  1:44 ` davem at gcc dot gnu.org
                   ` (9 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: davem at gcc dot gnu.org @ 2012-11-06  1:44 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #20 from davem at gcc dot gnu.org 2012-11-06 01:44:09 UTC ---
Eric, I checked, and that is not how Debian builds their gcc.

They build with "sparc-unknown-linux" as the triplet.

So they configure their compiler correctly, and I still contend
that nobody should use this sparc64+--with-cpu=v8 thing.

davem@patience:~/src/GIT/GCC/build-sparc64-linux/gcc$
/usr/lib/gcc/sparc-linux-gnu/4.6.3/cc1plus -version
GNU C++ (Debian 4.6.3-8) version 4.6.3 (sparc-linux-gnu)
        compiled by GNU C version 4.6.3, GMP version 5.0.5, MPFR version
3.1.0-p10, MPC version 0.9
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
  C-c C-c
davem@patience:~/src/GIT/GCC/build-sparc64-linux/gcc$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/sparc-linux-gnu/4.6/lto-wrapper
Target: sparc-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Debian 4.6.3-8'
--with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs
--enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-4.6 --enable-shared --enable-linker-build-id
--with-system-zlib --libexecdir=/usr/lib --without-included-gettext
--enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6
--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object
--enable-plugin --enable-objc-gc --enable-targets=all --with-long-double-128
--enable-checking=release --build=sparc-linux-gnu --host=sparc-linux-gnu
--target=sparc-linux-gnu
Thread model: posix
gcc version 4.6.3 (Debian 4.6.3-8)
davem@patience:~/src/GIT/GCC/build-sparc64-linux/gcc$


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (19 preceding siblings ...)
  2012-11-06  1:44 ` davem at gcc dot gnu.org
@ 2012-11-06  1:44 ` davem at gcc dot gnu.org
  2012-11-06  1:49 ` davem at gcc dot gnu.org
                   ` (8 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: davem at gcc dot gnu.org @ 2012-11-06  1:44 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #19 from davem at gcc dot gnu.org 2012-11-06 01:43:40 UTC ---
I always use --enable-targets=all


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (20 preceding siblings ...)
  2012-11-06  1:44 ` davem at gcc dot gnu.org
@ 2012-11-06  1:49 ` davem at gcc dot gnu.org
  2012-11-06  4:15 ` davem at gcc dot gnu.org
                   ` (7 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: davem at gcc dot gnu.org @ 2012-11-06  1:49 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #21 from davem at gcc dot gnu.org 2012-11-06 01:49:28 UTC ---
And now I remember more about this.  They did that utterly stupid
sparc64+--with-cpu=v8 thing exactly because --enable-targets=all didn't exist
for sparc way back when.

Then I added support for --enable-targets=all, so they didn't need to do that
senseless configuration to get what they want.


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (21 preceding siblings ...)
  2012-11-06  1:49 ` davem at gcc dot gnu.org
@ 2012-11-06  4:15 ` davem at gcc dot gnu.org
  2012-11-06  7:50 ` ebotcazou at gcc dot gnu.org
                   ` (6 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: davem at gcc dot gnu.org @ 2012-11-06  4:15 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #22 from davem at gcc dot gnu.org 2012-11-06 04:15:21 UTC ---
Ok IRA is where the allocation of %o1 for DImode is performed.
I'll try to figure out why it isn't consulting HARD_REGNO_MODE_OK
to validate this choice.


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (22 preceding siblings ...)
  2012-11-06  4:15 ` davem at gcc dot gnu.org
@ 2012-11-06  7:50 ` ebotcazou at gcc dot gnu.org
  2012-11-06 18:08 ` davem at gcc dot gnu.org
                   ` (5 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-11-06  7:50 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #23 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-11-06 07:49:43 UTC ---
> Eric, I checked, and that is not how Debian builds their gcc.
> 
> They build with "sparc-unknown-linux" as the triplet.
> 
> So they configure their compiler correctly, and I still contend
> that nobody should use this sparc64+--with-cpu=v8 thing.

You should have said so a decade (or more) ago when this was introduced.

Anyway, I don't really understand why you don't seem to have it: I do have the
faulty ldd instruction with crosses to sparc or sparc64 on x86 or x86-64. 
Maybe it isn't exercised in your build.


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (23 preceding siblings ...)
  2012-11-06  7:50 ` ebotcazou at gcc dot gnu.org
@ 2012-11-06 18:08 ` davem at gcc dot gnu.org
  2012-11-06 22:33 ` davem at gcc dot gnu.org
                   ` (4 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: davem at gcc dot gnu.org @ 2012-11-06 18:08 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #24 from davem at gcc dot gnu.org 2012-11-06 18:07:46 UTC ---
On several occasions, in both public and private emails, I have in fact
expressed my displeasure with how the configure system and the sparc backend
treat things based upon the target triplet.

I've always, and consistently, expressed my position that when configure sees
plain "sparc" gcc should generate 32-bit code by default.  And when it sees
"sparc64" it should generate 64-bit code by default.  Finally, I've always
stated that there should be an easy way to modify this default (after
installation) on a system wide basis  (f.e. via a file under sysroot).

Back to the bug.

I do builds with --with-cpu=niagara4 so that more of the VIS patterns and new
code gets exercised.  Among other things, this changes the heuristics for
various things like block moves.  This unaligned load is part of a block move
resulting from a structure copy.

In any event, I can reproduce it by using --with-cpu=v8, so I can debug it
properly.  I hope to have this fixed by the end of today.


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (24 preceding siblings ...)
  2012-11-06 18:08 ` davem at gcc dot gnu.org
@ 2012-11-06 22:33 ` davem at gcc dot gnu.org
  2012-11-07  7:12 ` davem at gcc dot gnu.org
                   ` (3 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: davem at gcc dot gnu.org @ 2012-11-06 22:33 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #25 from davem at gcc dot gnu.org 2012-11-06 22:32:40 UTC ---
Just an update.  I know what the exact problem is.  Actually it's a combination
of things.

Because of the way that IRA maintains it's hard reg sets, it can end up
thinking that odd integer registers are legitimate to allocate for DImode
values.

Specifically, when an allocno's ->profitable_regs is populated, it sets bits
for both registers in a DImode pair (actually this happens when populating
ira_useful_class_mode_regs[][], which in turn get copied into the initial value
of ->profitable_regs).  Then during allocation, the bits are tested
individually.

So say that all the integer register pairs are set in the profitable_regs reg
set.   Then %o0 is allocated for an SImode value.  IRA thinks that it's ok to
allocate %o1 for a DImode pseudo because %o1 and %o2 are set in the hard
register set.

Even if the above problem is solved, the next problem we run into has to do
with argument passing.  Normally if we have something like (set (reg:DI %o1)
...) it will get split up into two SImode moves.

But this cannot happen if the SET_SRC is a non-offsetable MEM.  We relied upon
the constraint that got removed to force a reload in this situation.

I am going to do one of two possible things tonight to solve this.  I'll either
create a new register class for these even DImode hard regs, or I'll simply
revert my change.


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (25 preceding siblings ...)
  2012-11-06 22:33 ` davem at gcc dot gnu.org
@ 2012-11-07  7:12 ` davem at gcc dot gnu.org
  2012-11-07  7:37 ` ebotcazou at gcc dot gnu.org
                   ` (2 subsequent siblings)
  29 siblings, 0 replies; 31+ messages in thread
From: davem at gcc dot gnu.org @ 2012-11-07  7:12 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #26 from davem at gcc dot gnu.org 2012-11-07 07:11:44 UTC ---
Ok, it seems it is not possible to expression the even integer register
condition using register classes.  Therefore I will revert the "U" constraint
removal.

I tried creating a DI32_REGS register class that only contained the even
integer registers.  But this doesn't work because the test of whether a hard
register is within a class requires that all of the registers that are a part
of the DImode
register pair are in the class.  So you'd need to include both the even and odd
registers, which defeats the entire point of trying to express this using a
register class.

Longer term we do need a fix for this.  It is very clear that IRA is allocating
odd registers at times for DImode pseudos on 32-bit, and the only reason it
works is that things get fixed up later by either reload or the DImode
splitters.

If we extended define_register_constraint such that extra conditions could be
specified, we could get IRA to do the right thing and also have reload fix up
the unavoidable cases where we must use odd numbered registers for DImode
values on 32-bit such as argument passing.


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (26 preceding siblings ...)
  2012-11-07  7:12 ` davem at gcc dot gnu.org
@ 2012-11-07  7:37 ` ebotcazou at gcc dot gnu.org
  2012-11-07  8:42 ` davem at gcc dot gnu.org
  2012-11-07  8:45 ` davem at gcc dot gnu.org
  29 siblings, 0 replies; 31+ messages in thread
From: ebotcazou at gcc dot gnu.org @ 2012-11-07  7:37 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #27 from Eric Botcazou <ebotcazou at gcc dot gnu.org> 2012-11-07 07:37:05 UTC ---
> Longer term we do need a fix for this.  It is very clear that IRA is allocating
> odd registers at times for DImode pseudos on 32-bit, and the only reason it
> works is that things get fixed up later by either reload or the DImode
> splitters.
> 
> If we extended define_register_constraint such that extra conditions could be
> specified, we could get IRA to do the right thing and also have reload fix up
> the unavoidable cases where we must use odd numbered registers for DImode
> values on 32-bit such as argument passing.

Thanks for the detailed explanation.  I'd suggest copying a good chunk of it
into constraints.md when you add back the constraint.


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (27 preceding siblings ...)
  2012-11-07  7:37 ` ebotcazou at gcc dot gnu.org
@ 2012-11-07  8:42 ` davem at gcc dot gnu.org
  2012-11-07  8:45 ` davem at gcc dot gnu.org
  29 siblings, 0 replies; 31+ messages in thread
From: davem at gcc dot gnu.org @ 2012-11-07  8:42 UTC (permalink / raw)
  To: gcc-bugs


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

--- Comment #28 from davem at gcc dot gnu.org 2012-11-07 08:42:17 UTC ---
Author: davem
Date: Wed Nov  7 08:42:09 2012
New Revision: 193283

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=193283
Log:
Revert sparc "U" constraint removal.

    PR bootstrap/55211
    Revert:
        * config/sparc/constraints.md ("U"): Delete.
        * config/sparc/sparc.md: Use 'r' constraint instead of 'U'.
        * config/sparc/sync.md: Likewise.
    And revert parts of:
    * doc/md.texi: Sync sparc constraint documentation with reality.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/sparc/constraints.md
    trunk/gcc/config/sparc/sparc.md
    trunk/gcc/config/sparc/sync.md
    trunk/gcc/doc/md.texi


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

* [Bug bootstrap/55211] [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3
  2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
                   ` (28 preceding siblings ...)
  2012-11-07  8:42 ` davem at gcc dot gnu.org
@ 2012-11-07  8:45 ` davem at gcc dot gnu.org
  29 siblings, 0 replies; 31+ messages in thread
From: davem at gcc dot gnu.org @ 2012-11-07  8:45 UTC (permalink / raw)
  To: gcc-bugs


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

davem at gcc dot gnu.org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|                            |FIXED

--- Comment #29 from davem at gcc dot gnu.org 2012-11-07 08:45:02 UTC ---
Fixed in mainline.


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

end of thread, other threads:[~2012-11-07  8:45 UTC | newest]

Thread overview: 31+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-11-05  8:28 [Bug bootstrap/55211] New: [4.8 regression] sparc64-linux bootstrap fails with SIGILL while compiling __mulvti3 mikpe at it dot uu.se
2012-11-05 10:51 ` [Bug bootstrap/55211] " jakub at gcc dot gnu.org
2012-11-05 13:15 ` mikpe at it dot uu.se
2012-11-05 14:12 ` mikpe at it dot uu.se
2012-11-05 16:28 ` jakub at gcc dot gnu.org
2012-11-05 18:11 ` ebotcazou at gcc dot gnu.org
2012-11-05 18:22 ` davem at gcc dot gnu.org
2012-11-05 18:24 ` davem at gcc dot gnu.org
2012-11-05 19:13 ` mikpe at it dot uu.se
2012-11-05 19:16 ` davem at gcc dot gnu.org
2012-11-05 21:38 ` davem at gcc dot gnu.org
2012-11-05 21:41 ` jakub at gcc dot gnu.org
2012-11-05 21:47 ` ebotcazou at gcc dot gnu.org
2012-11-05 21:50 ` davem at gcc dot gnu.org
2012-11-05 21:55 ` ebotcazou at gcc dot gnu.org
2012-11-05 22:04 ` davem at gcc dot gnu.org
2012-11-05 22:08 ` ebotcazou at gcc dot gnu.org
2012-11-05 22:19 ` ebotcazou at gcc dot gnu.org
2012-11-05 22:21 ` davem at gcc dot gnu.org
2012-11-05 22:31 ` ebotcazou at gcc dot gnu.org
2012-11-06  1:44 ` davem at gcc dot gnu.org
2012-11-06  1:44 ` davem at gcc dot gnu.org
2012-11-06  1:49 ` davem at gcc dot gnu.org
2012-11-06  4:15 ` davem at gcc dot gnu.org
2012-11-06  7:50 ` ebotcazou at gcc dot gnu.org
2012-11-06 18:08 ` davem at gcc dot gnu.org
2012-11-06 22:33 ` davem at gcc dot gnu.org
2012-11-07  7:12 ` davem at gcc dot gnu.org
2012-11-07  7:37 ` ebotcazou at gcc dot gnu.org
2012-11-07  8:42 ` davem at gcc dot gnu.org
2012-11-07  8:45 ` davem at gcc dot gnu.org

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).