public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/24823]  New: [4.1 Regression] ICE
@ 2005-11-12 18:31 rguenth at gcc dot gnu dot org
  2005-11-12 18:32 ` [Bug rtl-optimization/24823] " rguenth at gcc dot gnu dot org
                   ` (23 more replies)
  0 siblings, 24 replies; 25+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2005-11-12 18:31 UTC (permalink / raw)
  To: gcc-bugs

We ICE building lapack on x86_64 with

/usr/lib64/gcc/x86_64-suse-linux/4.1.0/f951 zlatmr.f -ffixed-form -quiet
-dumpbase zlatmr.f -mtune=k8 -auxbase zlatmr -O3 -version -funroll-all-loops -o
/tmp/cclbQYB1.s
zlatmr.min.f:69: internal compiler error: in insert_save, at caller-save.c:719


-- 
           Summary: [4.1 Regression] ICE
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Keywords: ice-on-valid-code
          Severity: normal
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: rguenth at gcc dot gnu dot org
GCC target triplet: x86_64-*-linux-gnu


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


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

* [Bug rtl-optimization/24823] [4.1 Regression] ICE
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
@ 2005-11-12 18:32 ` rguenth at gcc dot gnu dot org
  2005-11-12 18:40 ` pinskia at gcc dot gnu dot org
                   ` (22 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2005-11-12 18:32 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from rguenth at gcc dot gnu dot org  2005-11-12 18:32 -------
Created an attachment (id=10228)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=10228&action=view)
reduced testcase

testcase


-- 


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


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

* [Bug rtl-optimization/24823] [4.1 Regression] ICE
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
  2005-11-12 18:32 ` [Bug rtl-optimization/24823] " rguenth at gcc dot gnu dot org
@ 2005-11-12 18:40 ` pinskia at gcc dot gnu dot org
  2005-11-12 19:10 ` pinskia at gcc dot gnu dot org
                   ` (21 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-12 18:40 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from pinskia at gcc dot gnu dot org  2005-11-12 18:40 -------
This is a recent regression.  This worked with PR 20051106 but not with
20051111.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |critical
            Summary|[4.1 Regression] ICE        |[4.1 Regression] ICE
   Target Milestone|---                         |4.1.0


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


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

* [Bug rtl-optimization/24823] [4.1 Regression] ICE
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
  2005-11-12 18:32 ` [Bug rtl-optimization/24823] " rguenth at gcc dot gnu dot org
  2005-11-12 18:40 ` pinskia at gcc dot gnu dot org
@ 2005-11-12 19:10 ` pinskia at gcc dot gnu dot org
  2005-11-12 19:12 ` pinskia at gcc dot gnu dot org
                   ` (20 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-12 19:10 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from pinskia at gcc dot gnu dot org  2005-11-12 19:10 -------
Confirmed.
<ssb> 106665 works, 106727 fails


-- 


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


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

* [Bug rtl-optimization/24823] [4.1 Regression] ICE
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2005-11-12 19:10 ` pinskia at gcc dot gnu dot org
@ 2005-11-12 19:12 ` pinskia at gcc dot gnu dot org
  2005-11-15  1:45 ` janis at gcc dot gnu dot org
                   ` (19 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-12 19:12 UTC (permalink / raw)
  To: gcc-bugs



-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2005-11-12 19:12:07
               date|                            |


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


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

* [Bug rtl-optimization/24823] [4.1 Regression] ICE
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2005-11-12 19:12 ` pinskia at gcc dot gnu dot org
@ 2005-11-15  1:45 ` janis at gcc dot gnu dot org
  2005-11-15 16:47 ` krebbel at gcc dot gnu dot org
                   ` (18 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: janis at gcc dot gnu dot org @ 2005-11-15  1:45 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from janis at gcc dot gnu dot org  2005-11-15 01:45 -------
A regression hunt using an x86_64 cross compiler identified:

http://gcc.gnu.org/viewcvs?view=rev&rev=106686

r106686 | krebbel | 2005-11-09 11:34:56 +0000 (Wed, 09 Nov 2005) | 8 lines

2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>

        * flow.c (mark_set_1): Handle CLOBBERs like SETs if the register
        is live afterwards.


-- 

janis at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |krebbel at gcc dot gnu dot
                   |                            |org


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


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

* [Bug rtl-optimization/24823] [4.1 Regression] ICE
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2005-11-15  1:45 ` janis at gcc dot gnu dot org
@ 2005-11-15 16:47 ` krebbel at gcc dot gnu dot org
  2005-11-17 11:48 ` [Bug rtl-optimization/24823] [4.1 Regression] ICE in insert_save, at caller-save.c:719 rguenth at gcc dot gnu dot org
                   ` (17 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: krebbel at gcc dot gnu dot org @ 2005-11-15 16:47 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from krebbel at gcc dot gnu dot org  2005-11-15 16:47 -------
The only difference my patch brought is different behaviour 
of mark_set_1 if it is called under wrong! conditions. Will
say that only in case somebody calls mark_set_1 clobbering a reg which
is live afterwards - we would usually consider this a bug. 
But because the different liveness analyzers used by global 
alloc and flow we may have such a situation for uninitialized 
quantities. But this didn't happen here. So the question is why 
somebody calls mark_set_1 to clobber a reg which seem to be
needed afterwards?

The problematic mark_set_1 call comes from flow.c:1876 where
mark_set_1 is used to end the live ranges of all call clobbered
registers by pretending to have found a clobber for them. For
the testcase this is done for a 3dnow register xmm1 although
that register is live afterwards (at the end of the bb). 
Due to my patch no REG_DEAD note is emitted because it is 
assumed that xmm1 holds the value of an uninitialized variable.

So why xmm1 is live at bb end? I think the problem here is that
mark_used_regs doesn't handle PARALLELs as destination of a SET
properly. It shouldn't mark the destination reg USED by the call. 
For single SETs this works well (flow.c:3972) but for a non BLKmode
PARALLEL we fall through to line 4099 which calls mark_used_regs
recursively for all parts of the PARALLEL and therefore lets the regs
in the following insn be live before that insn up to the entry bb:

(call_insn:HI 361 360 362 32 (set (parallel:DC [
                (expr_list:REG_DEP_TRUE (reg:DF 21 xmm0)
                    (const_int 0 [0x0]))
                (expr_list:REG_DEP_TRUE (reg:DF 22 xmm1)
                    (const_int 8 [0x8]))
            ])
        (call (mem:QI (symbol_ref:DI ("zlatm2_") [flags 0x41] 
         <function_decl 0xb7b43200 zlatm2>) [0 S1 A8])

Btw. it is completely unclear to me what this kind of destination 
shall mean. Any explanations are welcome.


-- 


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


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

* [Bug rtl-optimization/24823] [4.1 Regression] ICE in insert_save, at caller-save.c:719
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2005-11-15 16:47 ` krebbel at gcc dot gnu dot org
@ 2005-11-17 11:48 ` rguenth at gcc dot gnu dot org
  2005-11-19  0:02 ` pinskia at gcc dot gnu dot org
                   ` (16 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2005-11-17 11:48 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from rguenth at gcc dot gnu dot org  2005-11-17 11:47 -------
Btw., this also happens on armv4l compiling NX:

gcc -c -O3  -fsigned-char  -I. -I../../exports/include/freetype2       
-I../../extras/freetype2/src    -I../../extras/freetype2/src/base      
-I../../extras/freetype2/src/autohint   -I../../extras/freetype2/src/bdf       
-I../../extras/freetype2/src/cff        -I../../extras/freetype2/src/cid       
-I../../extras/freetype2/src/pcf        -I../../extras/freetype2/src/pfr       
-I../../extras/freetype2/src/psaux      -I../../extras/freetype2/src/pshinter  
-I../../extras/freetype2/src/psnames    -I../../extras/freetype2/src/raster    
-I../../extras/freetype2/src/sfnt       -I../../extras/freetype2/src/smooth    
-I../../extras/freetype2/src/truetype   -I../../extras/freetype2/src/type1     
-I../../extras/freetype2/src/type42     -I../../extras/freetype2/src/winfonts 
-I../.. -I../../exports/include   -Dlinux -D__arm__ -D__arm32__ -U__arm -Uarm
-D_POSIX_C_SOURCE=199309L                          -D_POSIX_SOURCE
-D_XOPEN_SOURCE                                 -D_BSD_SOURCE -D_SVID_SOURCE   
                         -D_GNU_SOURCE                           
-DFUNCPROTO=15 -DNARROWPROTO -DXTHREADS  -D_REENTRANT -DXUSE_MTSAFE_API      
bdf.c
../../extras/freetype2/src/bdf/bdfdrivr.c: In function 'BDF_Face_Init':
../../extras/freetype2/src/bdf/bdfdrivr.c:285: internal compiler error: in
insert_save, at caller-save.c:719
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.suse.de/feedback> for instructions.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 GCC target triplet|x86_64-*-linux-gnu          |x86_64-*-linux-gnu, armv4l-
                   |                            |*-linux-gnu


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


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

* [Bug rtl-optimization/24823] [4.1 Regression] ICE in insert_save, at caller-save.c:719
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2005-11-17 11:48 ` [Bug rtl-optimization/24823] [4.1 Regression] ICE in insert_save, at caller-save.c:719 rguenth at gcc dot gnu dot org
@ 2005-11-19  0:02 ` pinskia at gcc dot gnu dot org
  2005-11-19  0:07 ` pinskia at gcc dot gnu dot org
                   ` (15 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-19  0:02 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from pinskia at gcc dot gnu dot org  2005-11-19 00:02 -------
(In reply to comment #6)
> Btw., this also happens on armv4l compiling NX:
That might be a different bug.


-- 


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


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

* [Bug rtl-optimization/24823] [4.1 Regression] ICE in insert_save, at caller-save.c:719
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2005-11-19  0:02 ` pinskia at gcc dot gnu dot org
@ 2005-11-19  0:07 ` pinskia at gcc dot gnu dot org
  2005-11-19  0:14 ` pinskia at gcc dot gnu dot org
                   ` (14 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-19  0:07 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from pinskia at gcc dot gnu dot org  2005-11-19 00:06 -------
The instruction:
(call_insn:HI 361 360 362 32 (set (parallel:DC [
                (expr_list:REG_DEP_TRUE (reg:DF 21 xmm0)
                    (const_int 0 [0x0]))
                (expr_list:REG_DEP_TRUE (reg:DF 22 xmm1)
                    (const_int 8 [0x8]))
            ])
        (call (mem:QI (symbol_ref:DI ("zlatm2_") [flags 0x41] 
         <function_decl 0xb7b43200 zlatm2>) [0 S1 A8])

Means that xmm0 and xmm1 is the return value from that call.
This really only shows up with complex types as we actually split them up very
early on unlike DImode on 32bit targets or TImode on 64bit targets.


-- 


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


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

* [Bug rtl-optimization/24823] [4.1 Regression] ICE in insert_save, at caller-save.c:719
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2005-11-19  0:07 ` pinskia at gcc dot gnu dot org
@ 2005-11-19  0:14 ` pinskia at gcc dot gnu dot org
  2005-11-19  2:11 ` mmitchel at gcc dot gnu dot org
                   ` (13 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-19  0:14 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from pinskia at gcc dot gnu dot org  2005-11-19 00:14 -------
Note the shortest (C) testcase get that pattern is:
_Complex double f(void);
void g(void)
{
  _Complex double a = f();
}

Though will not cause the ICE. 


-- 


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


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

* [Bug rtl-optimization/24823] [4.1 Regression] ICE in insert_save, at caller-save.c:719
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (9 preceding siblings ...)
  2005-11-19  0:14 ` pinskia at gcc dot gnu dot org
@ 2005-11-19  2:11 ` mmitchel at gcc dot gnu dot org
  2005-11-21  9:29 ` [Bug rtl-optimization/24823] [4.1/4.2 " krebbel at gcc dot gnu dot org
                   ` (12 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: mmitchel at gcc dot gnu dot org @ 2005-11-19  2:11 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from mmitchel at gcc dot gnu dot org  2005-11-19 02:11 -------
Showstopper.


-- 

mmitchel at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P1


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


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

* [Bug rtl-optimization/24823] [4.1/4.2 Regression] ICE in insert_save, at caller-save.c:719
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (10 preceding siblings ...)
  2005-11-19  2:11 ` mmitchel at gcc dot gnu dot org
@ 2005-11-21  9:29 ` krebbel at gcc dot gnu dot org
  2005-11-21 15:17 ` pinskia at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: krebbel at gcc dot gnu dot org @ 2005-11-21  9:29 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from krebbel at gcc dot gnu dot org  2005-11-21 09:29 -------
Ok, knowing that this may only happen if the return value
of a function has a complex type a trivial fix could look
like this:

Index: gcc/flow.c
===================================================================
*** gcc/flow.c.orig     2005-11-15 14:21:23.000000000 +0100
--- gcc/flow.c  2005-11-21 09:34:05.000000000 +0100
*************** mark_used_regs (struct propagate_block_i
*** 4020,4026 ****
           recursively scan the value being stored.  */

        if ((GET_CODE (testreg) == PARALLEL
!            && GET_MODE (testreg) == BLKmode)
            || (REG_P (testreg)
                && (regno = REGNO (testreg),
                    ! (regno == FRAME_POINTER_REGNUM
--- 4020,4027 ----
           recursively scan the value being stored.  */

        if ((GET_CODE (testreg) == PARALLEL
!            && (GET_MODE (testreg) == BLKmode
!                || COMPLEX_MODE_P (GET_MODE (testreg))))
            || (REG_P (testreg)
                && (regno = REGNO (testreg),
                    ! (regno == FRAME_POINTER_REGNUM

This fixes the problem for my x86_64 crosscompiler but certainly
needs further testing. Could somebody with an Intel 64bit system
try to bootstrap this? Bootstraps on s390 wouldn't help here because
we do not return complex types that way.


-- 


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


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

* [Bug rtl-optimization/24823] [4.1/4.2 Regression] ICE in insert_save, at caller-save.c:719
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (11 preceding siblings ...)
  2005-11-21  9:29 ` [Bug rtl-optimization/24823] [4.1/4.2 " krebbel at gcc dot gnu dot org
@ 2005-11-21 15:17 ` pinskia at gcc dot gnu dot org
  2005-11-21 16:07 ` krebbel at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-21 15:17 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from pinskia at gcc dot gnu dot org  2005-11-21 15:16 -------
(In reply to comment #11)
> Could somebody with an Intel 64bit system try to bootstrap this? 

I don't have an Intel 64bit machine, but I can do a bootstrap on a x86_64
machine with this patch.


-- 


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


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

* [Bug rtl-optimization/24823] [4.1/4.2 Regression] ICE in insert_save, at caller-save.c:719
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (12 preceding siblings ...)
  2005-11-21 15:17 ` pinskia at gcc dot gnu dot org
@ 2005-11-21 16:07 ` krebbel at gcc dot gnu dot org
  2005-11-21 16:19 ` pinskia at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: krebbel at gcc dot gnu dot org @ 2005-11-21 16:07 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from krebbel at gcc dot gnu dot org  2005-11-21 16:07 -------
> I don't have an Intel 64bit machine, but I can do a bootstrap on a x86_64
> machine with this patch.

Ups. That's what I was trying to suggest - an unusual typo isn't it? ;-)
Thanks for taking care of this!


-- 


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


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

* [Bug rtl-optimization/24823] [4.1/4.2 Regression] ICE in insert_save, at caller-save.c:719
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (13 preceding siblings ...)
  2005-11-21 16:07 ` krebbel at gcc dot gnu dot org
@ 2005-11-21 16:19 ` pinskia at gcc dot gnu dot org
  2005-11-21 16:22 ` pinskia at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-21 16:19 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from pinskia at gcc dot gnu dot org  2005-11-21 16:19 -------
(In reply to comment #13)
> Ups. That's what I was trying to suggest - an unusual typo isn't it? ;-)
> Thanks for taking care of this!


Actually I was wrong in saying that only complex modes can show up here.  It
can also show up in the mixed 64/32 bit of PPC for 64bit ints (powerpc-darwin
is the target).
(call_insn 8 6 9 (parallel [
            (set (parallel:DI [
                        (expr_list:REG_DEP_TRUE (reg:SI 3 r3)
                            (const_int 0 [0x0]))
                        (expr_list:REG_DEP_TRUE (reg:SI 4 r4)
                            (const_int 4 [0x4]))
                    ])
                (call (mem:SI (symbol_ref:SI ("f") [flags 0x41] <function_decl
0x2aaaab0a6e00 f>) [0 S4 A8])
                    (const_int 32 [0x20])))
            (use (const_int 0 [0x0]))
            (clobber (scratch:SI))
        ]) -1 (nil)
    (nil)
    (nil))

You most likely can construct an ICE for that testcase too but I don't really
know how.
The testcase to get that construct is:
long long f(void);

int g(void)
{
  return f();
}


-- 


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


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

* [Bug rtl-optimization/24823] [4.1/4.2 Regression] ICE in insert_save, at caller-save.c:719
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (14 preceding siblings ...)
  2005-11-21 16:19 ` pinskia at gcc dot gnu dot org
@ 2005-11-21 16:22 ` pinskia at gcc dot gnu dot org
  2005-11-21 17:36 ` krebbel at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-11-21 16:22 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #15 from pinskia at gcc dot gnu dot org  2005-11-21 16:22 -------
(In reply to comment #14)
> The testcase to get that construct is:
Compiling with -mpowerpc64 to get the mixed mode.  I would not doubt that the
arm failure is a similar issue but not with complex types.


-- 


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


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

* [Bug rtl-optimization/24823] [4.1/4.2 Regression] ICE in insert_save, at caller-save.c:719
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (15 preceding siblings ...)
  2005-11-21 16:22 ` pinskia at gcc dot gnu dot org
@ 2005-11-21 17:36 ` krebbel at gcc dot gnu dot org
  2005-12-02 21:53 ` pinskia at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: krebbel at gcc dot gnu dot org @ 2005-11-21 17:36 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #16 from krebbel at gcc dot gnu dot org  2005-11-21 17:36 -------
(In reply to comment #15)
> (In reply to comment #14)
> > The testcase to get that construct is:
> Compiling with -mpowerpc64 to get the mixed mode.  I would not doubt that the
> arm failure is a similar issue but not with complex types.
So maybe we can remove the mode check:
 && GET_MODE (testreg) == BLKmode)

The only problem I could think of is when we have a MEM within the PARALLEL,
then we should rather fall through to the code calling mark_used_regs
recursively in order to mark the regs holding the address as used. So perhaps
it is necessary to make sure that the PARALLEL only contains regs.


-- 


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


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

* [Bug rtl-optimization/24823] [4.1/4.2 Regression] ICE in insert_save, at caller-save.c:719
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (16 preceding siblings ...)
  2005-11-21 17:36 ` krebbel at gcc dot gnu dot org
@ 2005-12-02 21:53 ` pinskia at gcc dot gnu dot org
  2005-12-05  7:57 ` krebbel at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-12-02 21:53 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #17 from pinskia at gcc dot gnu dot org  2005-12-02 21:53 -------
Oh, and another case where we can get the parallel is for returning 128bit
structs on x86_64.


-- 


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


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

* [Bug rtl-optimization/24823] [4.1/4.2 Regression] ICE in insert_save, at caller-save.c:719
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (17 preceding siblings ...)
  2005-12-02 21:53 ` pinskia at gcc dot gnu dot org
@ 2005-12-05  7:57 ` krebbel at gcc dot gnu dot org
  2005-12-09 18:16 ` kargl at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: krebbel at gcc dot gnu dot org @ 2005-12-05  7:57 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #18 from krebbel at gcc dot gnu dot org  2005-12-05 07:57 -------
(In reply to comment #17)
> Oh, and another case where we can get the parallel is for returning 128bit
> structs on x86_64.
> 
I've posted a patch on Nov 28th which should handle these cases correctly:
http://gcc.gnu.org/ml/gcc-patches/2005-11/msg01933.html

Richard Guenther tested the patch on x86_64 and I did on s390, s390x and i686.
The patch is waiting for approval.


-- 


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


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

* [Bug rtl-optimization/24823] [4.1/4.2 Regression] ICE in insert_save, at caller-save.c:719
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (18 preceding siblings ...)
  2005-12-05  7:57 ` krebbel at gcc dot gnu dot org
@ 2005-12-09 18:16 ` kargl at gcc dot gnu dot org
  2005-12-09 18:45 ` rguenth at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: kargl at gcc dot gnu dot org @ 2005-12-09 18:16 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #19 from kargl at gcc dot gnu dot org  2005-12-09 18:16 -------
I've tested this patch on amd64-*-freebsd.  It cures my
gfortran failures.  Who do we need to ping to get this
approved?


-- 

kargl at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kargl at gcc dot gnu dot org


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


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

* [Bug rtl-optimization/24823] [4.1/4.2 Regression] ICE in insert_save, at caller-save.c:719
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (19 preceding siblings ...)
  2005-12-09 18:16 ` kargl at gcc dot gnu dot org
@ 2005-12-09 18:45 ` rguenth at gcc dot gnu dot org
  2005-12-16  9:02 ` krebbel at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  23 siblings, 0 replies; 25+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2005-12-09 18:45 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #20 from rguenth at gcc dot gnu dot org  2005-12-09 18:45 -------
I'll ping gcc-patches.


-- 

rguenth at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |patch


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


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

* [Bug rtl-optimization/24823] [4.1/4.2 Regression] ICE in insert_save, at caller-save.c:719
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (20 preceding siblings ...)
  2005-12-09 18:45 ` rguenth at gcc dot gnu dot org
@ 2005-12-16  9:02 ` krebbel at gcc dot gnu dot org
  2005-12-16  9:09 ` krebbel at gcc dot gnu dot org
  2005-12-16  9:18 ` krebbel at gcc dot gnu dot org
  23 siblings, 0 replies; 25+ messages in thread
From: krebbel at gcc dot gnu dot org @ 2005-12-16  9:02 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #21 from krebbel at gcc dot gnu dot org  2005-12-16 09:02 -------
Subject: Bug 24823

Author: krebbel
Date: Fri Dec 16 09:02:49 2005
New Revision: 108631

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=108631
Log:
2005-12-16  Andreas Krebbel  <krebbel1@de.ibm.com>

        PR 24823
        * flow.c (mark_used_dest_regs): New function.
        (mark_used_regs): Call mark_used_dest_regs.

2005-12-16  Andreas Krebbel  <krebbel1@de.ibm.com>

        PR 24823
        * gfortran.dg/pr24823.f: New test.


Added:
    branches/gcc-4_1-branch/gcc/testsuite/gfortran.dg/pr24823.f
Modified:
    branches/gcc-4_1-branch/gcc/ChangeLog
    branches/gcc-4_1-branch/gcc/flow.c
    branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


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


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

* [Bug rtl-optimization/24823] [4.1/4.2 Regression] ICE in insert_save, at caller-save.c:719
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (21 preceding siblings ...)
  2005-12-16  9:02 ` krebbel at gcc dot gnu dot org
@ 2005-12-16  9:09 ` krebbel at gcc dot gnu dot org
  2005-12-16  9:18 ` krebbel at gcc dot gnu dot org
  23 siblings, 0 replies; 25+ messages in thread
From: krebbel at gcc dot gnu dot org @ 2005-12-16  9:09 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #22 from krebbel at gcc dot gnu dot org  2005-12-16 09:09 -------
Subject: Bug 24823

Author: krebbel
Date: Fri Dec 16 09:09:37 2005
New Revision: 108632

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=108632
Log:
2005-12-16  Andreas Krebbel  <krebbel1@de.ibm.com>

        PR 24823
        * flow.c (mark_used_dest_regs): New function.
        (mark_used_regs): Call mark_used_dest_regs.

2005-12-16  Andreas Krebbel  <krebbel1@de.ibm.com>

        PR 24823
        * gfortran.dg/pr24823.f: New test.


Added:
    trunk/gcc/testsuite/gfortran.dg/pr24823.f
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/flow.c
    trunk/gcc/testsuite/ChangeLog


-- 


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


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

* [Bug rtl-optimization/24823] [4.1/4.2 Regression] ICE in insert_save, at caller-save.c:719
  2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
                   ` (22 preceding siblings ...)
  2005-12-16  9:09 ` krebbel at gcc dot gnu dot org
@ 2005-12-16  9:18 ` krebbel at gcc dot gnu dot org
  23 siblings, 0 replies; 25+ messages in thread
From: krebbel at gcc dot gnu dot org @ 2005-12-16  9:18 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #23 from krebbel at gcc dot gnu dot org  2005-12-16 09:18 -------
Fixed.


-- 

krebbel at gcc dot gnu dot org changed:

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


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


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

end of thread, other threads:[~2005-12-16  9:18 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-11-12 18:31 [Bug rtl-optimization/24823] New: [4.1 Regression] ICE rguenth at gcc dot gnu dot org
2005-11-12 18:32 ` [Bug rtl-optimization/24823] " rguenth at gcc dot gnu dot org
2005-11-12 18:40 ` pinskia at gcc dot gnu dot org
2005-11-12 19:10 ` pinskia at gcc dot gnu dot org
2005-11-12 19:12 ` pinskia at gcc dot gnu dot org
2005-11-15  1:45 ` janis at gcc dot gnu dot org
2005-11-15 16:47 ` krebbel at gcc dot gnu dot org
2005-11-17 11:48 ` [Bug rtl-optimization/24823] [4.1 Regression] ICE in insert_save, at caller-save.c:719 rguenth at gcc dot gnu dot org
2005-11-19  0:02 ` pinskia at gcc dot gnu dot org
2005-11-19  0:07 ` pinskia at gcc dot gnu dot org
2005-11-19  0:14 ` pinskia at gcc dot gnu dot org
2005-11-19  2:11 ` mmitchel at gcc dot gnu dot org
2005-11-21  9:29 ` [Bug rtl-optimization/24823] [4.1/4.2 " krebbel at gcc dot gnu dot org
2005-11-21 15:17 ` pinskia at gcc dot gnu dot org
2005-11-21 16:07 ` krebbel at gcc dot gnu dot org
2005-11-21 16:19 ` pinskia at gcc dot gnu dot org
2005-11-21 16:22 ` pinskia at gcc dot gnu dot org
2005-11-21 17:36 ` krebbel at gcc dot gnu dot org
2005-12-02 21:53 ` pinskia at gcc dot gnu dot org
2005-12-05  7:57 ` krebbel at gcc dot gnu dot org
2005-12-09 18:16 ` kargl at gcc dot gnu dot org
2005-12-09 18:45 ` rguenth at gcc dot gnu dot org
2005-12-16  9:02 ` krebbel at gcc dot gnu dot org
2005-12-16  9:09 ` krebbel at gcc dot gnu dot org
2005-12-16  9:18 ` krebbel at gcc dot gnu dot 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).