public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug c/27363]  New: ARM gcc 4.1 optimization bug
@ 2006-04-30  4:48 nh26223 at yahoo dot com dot cn
  2006-04-30  5:01 ` [Bug target/27363] " pinskia at gcc dot gnu dot org
                   ` (20 more replies)
  0 siblings, 21 replies; 22+ messages in thread
From: nh26223 at yahoo dot com dot cn @ 2006-04-30  4:48 UTC (permalink / raw)
  To: gcc-bugs

The kernel is 2.6.14. When I build ALSA subsystem. I use following commandline:

arm-iwmmxt-linux-gnueabi-gcc -Wp,-MD,sound/core/.pcm_native.o.d
-nostdinc -isystem
/usr/local/arm-iwmmxt-linux-gnueabi/bin/../lib/gcc/arm-iwmmxt-linux-gnueabi/4.1.0/include
-D__KERNEL__ -Iinclude  -include include/linux/autoconf.h
-mlittle-endian -gdwarf-2 -Wall -Wundef -Wstrict-prototypes
-Wno-trigraphs -fno-strict-aliasing -fno-common -ffreestanding
-fno-omit-frame-pointer -fno-optimize-sibling-calls -gdwarf-2
-fno-omit-frame-pointer -mapcs -mno-sched-prolog -mabi=aapcs-linux
-mno-thumb-interwork -D__LINUX_ARM_ARCH__=5 -march=armv5te
-mtune=xscale -Wa,-mcpu=xscale  -msoft-float -Uarm
-Wdeclaration-after-statement -Wno-pointer-sign   -gdwarf-2
-DKBUILD_BASENAME=pcm_native -DKBUILD_MODNAME=snd_pcm -Os -c -o
sound/core/pcm_native.o sound/core/pcm_native.c


And the function is like following (using
arm-iwmmxt-linux-gnueabi-objdump -d pcm_nativ.o):

0000211c <snd_mask_refine>:
   211c:       e1a0c00d        mov     ip, sp
   2120:       e92dd8f0        stmdb   sp!, {r4, r5, r6, r7, fp, ip, lr, pc}
   2124:       e24cb004        sub     fp, ip, #4      ; 0x4
   2128:       e24dd020        sub     sp, sp, #32     ; 0x20
   212c:       e5913000        ldr     r3, [r1]
   2130:       e51b502c        ldr     r5, [fp, #-44]
   2134:       e24b603c        sub     r6, fp, #60     ; 0x3c
   2138:       e1a0c000        mov     ip, r0
   213c:       e1a0e006        mov     lr, r6
   2140:       e1a04000        mov     r4, r0
   2144:       e0055003        and     r5, r5, r3
   2148:       e1a07001        mov     r7, r1
   214c:       e8bc000f        ldmia   ip!, {r0, r1, r2, r3}
   2150:       e8ae000f        stmia   lr!, {r0, r1, r2, r3}
   2154:       e89c000f        ldmia   ip, {r0, r1, r2, r3}
   2158:       e5845000        str     r5, [r4]
   215c:       e597c004        ldr     ip, [r7, #4]
   2160:       e3550000        cmp     r5, #0  ; 0x0
   2164:       e88e000f        stmia   lr, {r0, r1, r2, r3}
   2168:       e001300c        and     r3, r1, ip              /* r1 from
                                                                  2154:       
e89c000f        ldmia   ip, {r0, r1, r2, r3}
                                                                  Using the
wrong value.
                                                                  The r1 from
this instruction should be used:
                                                                  214c:   ldmia
       ip!, {r0, r1, r2, r3}
                                                               */
   216c:       e1a00004        mov     r0, r4
   2170:       e3a02008        mov     r2, #8  ; 0x8
   2174:       e1a01006        mov     r1, r6
   2178:       e5843004        str     r3, [r4, #4]
   217c:       1a000005        bne     2198 <snd_mask_refine+0x7c>
   2180:       e3530000        cmp     r3, #0  ; 0x0
   2184:       e3e03015        mvn     r3, #21 ; 0x15
   2188:       1a000002        bne     2198 <snd_mask_refine+0x7c>
   218c:       e1a00003        mov     r0, r3
   2190:       e24bd01c        sub     sp, fp, #28     ; 0x1c
   2194:       e89da8f0        ldmia   sp, {r4, r5, r6, r7, fp, sp, pc}
   2198:       ebfffffe        bl      0 <memcmp>
   219c:       e2503000        subs    r3, r0, #0      ; 0x0
   21a0:       13a03001        movne   r3, #1  ; 0x1
   21a4:       eafffff8        b       218c <snd_mask_refine+0x70>

The C code is like following:

#define SNDRV_MASK_SIZE 2
struct mask_t {
       unsigned int bits[8];
};
typedef struct mask_t snd_mask_t;
static inline int snd_mask_empty(const snd_mask_t *mask)
{
       int i;
       for (i = 0; i < SNDRV_MASK_SIZE; i++) {
               if (mask->bits[i])
                       return 0;
       }
       return 1;
}
static inline void snd_mask_intersect(snd_mask_t *mask, const snd_mask_t *v)
{
       int i;
       for (i = 0; i < SNDRV_MASK_SIZE; i++)
               mask->bits[i] &= v->bits[i];
}
static inline void snd_mask_copy(snd_mask_t *mask, const snd_mask_t *v)
{
       *mask = *v;
}
int snd_mask_refine(snd_mask_t *mask, const snd_mask_t *v)
{
       snd_mask_t old;

       snd_mask_copy(&old, mask);
       snd_mask_intersect(mask, v);
       if (snd_mask_empty(mask))
               return -1;

       return !snd_mask_eq(mask, &old);
       return 1;
}

When I remove the -O option, the ALSA works OK. the .s file is like following:

00000040 <snd_mask_refine>:
     40:       e1a0c00d        mov     ip, sp
     44:       e92dd800        stmdb   sp!, {fp, ip, lr, pc}
     48:       e24cb004        sub     fp, ip, #4      ; 0x4
     4c:       e24dd048        sub     sp, sp, #72     ; 0x48
     50:       e50b0048        str     r0, [fp, #-72]
     54:       e50b104c        str     r1, [fp, #-76]
     58:       e51b3048        ldr     r3, [fp, #-72]
     5c:       e24be040        sub     lr, fp, #64     ; 0x40
     60:       e1a0c003        mov     ip, r3
     64:       e8bc000f        ldmia   ip!, {r0, r1, r2, r3}
     68:       e8ae000f        stmia   lr!, {r0, r1, r2, r3}
     6c:       e89c000f        ldmia   ip, {r0, r1, r2, r3}
     70:       e88e000f        stmia   lr, {r0, r1, r2, r3}
     74:       e3a03000        mov     r3, #0  ; 0x0
     78:       e50b3020        str     r3, [fp, #-32]
     7c:       ea00000c        b       b4 <snd_mask_refine+0x74>
     80:       e51b0020        ldr     r0, [fp, #-32]
     84:       e51b2020        ldr     r2, [fp, #-32]
     88:       e51b3048        ldr     r3, [fp, #-72]
     8c:       e7931102        ldr     r1, [r3, r2, lsl #2]
     90:       e51b2020        ldr     r2, [fp, #-32]
     94:       e51b304c        ldr     r3, [fp, #-76]
     98:       e7933102        ldr     r3, [r3, r2, lsl #2]
     9c:       e0012003        and     r2, r1, r3
     a0:       e51b3048        ldr     r3, [fp, #-72]
     a4:       e7832100        str     r2, [r3, r0, lsl #2]
     a8:       e51b3020        ldr     r3, [fp, #-32]
     ac:       e2833001        add     r3, r3, #1      ; 0x1
     b0:       e50b3020        str     r3, [fp, #-32]
     b4:       e51b3020        ldr     r3, [fp, #-32]
     b8:       e3530001        cmp     r3, #1  ; 0x1
     bc:       daffffef        ble     80 <snd_mask_refine+0x40>
     c0:       e51b3048        ldr     r3, [fp, #-72]
     c4:       e50b3018        str     r3, [fp, #-24]
     c8:       e3a03000        mov     r3, #0  ; 0x0
     cc:       e50b301c        str     r3, [fp, #-28]
     d0:       ea00000a        b       100 <snd_mask_refine+0xc0>
     d4:       e51b301c        ldr     r3, [fp, #-28]
     d8:       e51b2018        ldr     r2, [fp, #-24]
     dc:       e7923103        ldr     r3, [r2, r3, lsl #2]
     e0:       e3530000        cmp     r3, #0  ; 0x0
     e4:       0a000002        beq     f4 <snd_mask_refine+0xb4>
     e8:       e3a03000        mov     r3, #0  ; 0x0
     ec:       e50b3050        str     r3, [fp, #-80]
     f0:       ea000007        b       114 <snd_mask_refine+0xd4>
     f4:       e51b301c        ldr     r3, [fp, #-28]
     f8:       e2833001        add     r3, r3, #1      ; 0x1
     fc:       e50b301c        str     r3, [fp, #-28]
    100:       e51b301c        ldr     r3, [fp, #-28]
    104:       e3530001        cmp     r3, #1  ; 0x1
    108:       dafffff1        ble     d4 <snd_mask_refine+0x94>
    10c:       e3a03001        mov     r3, #1  ; 0x1
    110:       e50b3050        str     r3, [fp, #-80]
    114:       e51b3050        ldr     r3, [fp, #-80]
    118:       e3530000        cmp     r3, #0  ; 0x0
    11c:       0a000002        beq     12c <snd_mask_refine+0xec>
    120:       e3e03015        mvn     r3, #21 ; 0x15
    124:       e50b3054        str     r3, [fp, #-84]
    128:       ea00000f        b       16c <snd_mask_refine+0x12c>
    12c:       e51b3048        ldr     r3, [fp, #-72]
    130:       e50b3010        str     r3, [fp, #-16]
    134:       e24b3040        sub     r3, fp, #64     ; 0x40
    138:       e50b3014        str     r3, [fp, #-20]
    13c:       e51b0010        ldr     r0, [fp, #-16]
    140:       e51b1014        ldr     r1, [fp, #-20]
    144:       e3a02008        mov     r2, #8  ; 0x8
    148:       ebfffffe        bl      0 <memcmp>
    14c:       e1a03000        mov     r3, r0
    150:       e3530000        cmp     r3, #0  ; 0x0
    154:       13a03000        movne   r3, #0  ; 0x0
    158:       03a03001        moveq   r3, #1  ; 0x1
    15c:       e3530000        cmp     r3, #0  ; 0x0
    160:       13a03000        movne   r3, #0  ; 0x0
    164:       03a03001        moveq   r3, #1  ; 0x1
    168:       e50b3054        str     r3, [fp, #-84]
    16c:       e51b3054        ldr     r3, [fp, #-84]
    170:       e1a00003        mov     r0, r3
    174:       e24bd00c        sub     sp, fp, #12     ; 0xc
    178:       e89da800        ldmia   sp, {fp, sp, pc}


-- 
           Summary: ARM gcc 4.1 optimization bug
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: major
          Priority: P3
         Component: c
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: nh26223 at yahoo dot com dot cn
 GCC build triplet: i386
  GCC host triplet: i386
GCC target triplet: arm xscale iwmmxt


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
@ 2006-04-30  5:01 ` pinskia at gcc dot gnu dot org
  2006-04-30  5:09 ` yfw dot debian at gmail dot com
                   ` (19 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2006-04-30  5:01 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from pinskia at gcc dot gnu dot org  2006-04-30 05:01 -------
We really need a self contianed example but I think this was already fixed for
4.1.1.


-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |WAITING
          Component|c                           |target


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
  2006-04-30  5:01 ` [Bug target/27363] " pinskia at gcc dot gnu dot org
@ 2006-04-30  5:09 ` yfw dot debian at gmail dot com
  2006-04-30  5:32 ` yfw dot debian at gmail dot com
                   ` (18 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: yfw dot debian at gmail dot com @ 2006-04-30  5:09 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from yfw dot debian at gmail dot com  2006-04-30 05:09 -------
Subject: Re:  ARM gcc 4.1 optimization bug

Hi pinskia,
I tried to make a simple test example for this bug. But If I put the
code from ALSA subsystem
of Linux kernel to a test.c file, the gcc will product correct
assembly code. :(. So I put the Linux kernel assembly code(with -Os
and withoud -O) to bug reporter.


I will try the 4.1.1 later.

Thanks & Regards
yfw

On 30 Apr 2006 05:01:19 -0000, pinskia at gcc dot gnu dot org
<gcc-bugzilla@gcc.gnu.org> wrote:
>
>
> ------- Comment #1 from pinskia at gcc dot gnu dot org  2006-04-30 05:01 -------
> We really need a self contianed example but I think this was already fixed for
> 4.1.1.
>
>
> --
>
> pinskia at gcc dot gnu dot org changed:
>
>            What    |Removed                     |Added
> ----------------------------------------------------------------------------
>              Status|UNCONFIRMED                 |WAITING
>           Component|c                           |target
>
>
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27363
>
> ------- You are receiving this mail because: -------
> You reported the bug, or are watching the reporter.
>


-- 


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
  2006-04-30  5:01 ` [Bug target/27363] " pinskia at gcc dot gnu dot org
  2006-04-30  5:09 ` yfw dot debian at gmail dot com
@ 2006-04-30  5:32 ` yfw dot debian at gmail dot com
  2006-04-30  9:09 ` yfw dot debian at gmail dot com
                   ` (17 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: yfw dot debian at gmail dot com @ 2006-04-30  5:32 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from yfw dot debian at gmail dot com  2006-04-30 05:32 -------
Where can I get gcc 4.1.1? From the ftp site, the latest gcc 4.1 release is
4.1.0.

Thanks.


-- 


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
                   ` (2 preceding siblings ...)
  2006-04-30  5:32 ` yfw dot debian at gmail dot com
@ 2006-04-30  9:09 ` yfw dot debian at gmail dot com
  2006-05-14 17:15 ` s_j_newbury at yahoo dot co dot uk
                   ` (16 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: yfw dot debian at gmail dot com @ 2006-04-30  9:09 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from yfw dot debian at gmail dot com  2006-04-30 09:09 -------
I tried the gcc 4.1.1 snapshot 20060421. The bug still there. The assembly code
producted with -Os option is the same as gcc 4.1.0.


-- 


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
                   ` (3 preceding siblings ...)
  2006-04-30  9:09 ` yfw dot debian at gmail dot com
@ 2006-05-14 17:15 ` s_j_newbury at yahoo dot co dot uk
  2006-06-07 16:08 ` dirk dot behme at googlemail dot com
                   ` (15 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: s_j_newbury at yahoo dot co dot uk @ 2006-05-14 17:15 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from s_j_newbury at yahoo dot co dot uk  2006-05-14 17:15 -------
(In reply to comment #4)
> I tried the gcc 4.1.1 snapshot 20060421. The bug still there. The assembly code
> producted with -Os option is the same as gcc 4.1.0.
> 

Have you got anywhere with this?  I wonder if I'm hitting it too.  All the ALSA
modules load but no devices become available.

Kernels 2.6.16 - 2.6.17-rc4 + ALSA SoC
GCC 4.1.0 & 4.1.1
Target arm-iwmmxt-linux-gnueabi (-mabi=linux-aapcs, -march=armv5te,
-mtune=iwmmxt, -Os)


-- 


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
                   ` (4 preceding siblings ...)
  2006-05-14 17:15 ` s_j_newbury at yahoo dot co dot uk
@ 2006-06-07 16:08 ` dirk dot behme at googlemail dot com
  2006-06-12 15:44 ` dirk dot behme at googlemail dot com
                   ` (14 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: dirk dot behme at googlemail dot com @ 2006-06-07 16:08 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from dirk dot behme at googlemail dot com  2006-06-07 15:52 -------
Created an attachment (id=11628)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11628&action=view)
.i file of pcm_native.c and .s files for -Os, -O1 and -O2


Attached the .i and .s for -Os & -O2 (failing) and -O1 (working) (generated
with --save-temps).

Used compile options (from Linux kernel 2.6.17-rc5):

 arm-linux-gcc -Wp,-MD,sound/core/.pcm_native.o.d -nostdinc -isystem
/usr/arm/arm-linux_4_1_0/bin/../lib/gcc/arm-linux/4.1.0/include -D__KERNEL__
-Iinclude  -include include/linux/autoconf.h -mlittle-endian -Wall -Wundef
-Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -O1
-fno-omit-frame-pointer -fno-optimize-sibling-calls -fno-omit-frame-pointer
-mapcs -mno-sched-prolog -mabi=apcs-gnu -mno-thumb-interwork
-D__LINUX_ARM_ARCH__=5 -march=armv5te -mtune=arm9tdmi  -msoft-float -Uarm
-Wdeclaration-after-statement -Wno-pointer-sign   -DMODULE -D"KBUILD_STR(s)=#s"
-D"KBUILD_BASENAME=KBUILD_STR(pcm_native)"
-D"KBUILD_MODNAME=KBUILD_STR(snd_pcm)" --save-temps -c -o
sound/core/pcm_native.o sound/core/pcm_native.c

Only -O1 & -O2 & -Os were modified.

Small note:

While compiling only pcm_native.c with -O1 and using the resulting modules (4
modules depend on it) while using -Os for all other modules make the error I
observed go away. However, I get no sound output like if I compile all sound
modules with -O1. Seems that some other files of kernels sound system have (the
same?) optimization issue as well. But I think to start we should concentrate
on this file.


-- 


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
                   ` (5 preceding siblings ...)
  2006-06-07 16:08 ` dirk dot behme at googlemail dot com
@ 2006-06-12 15:44 ` dirk dot behme at googlemail dot com
  2006-06-26 19:13 ` rguenth at gcc dot gnu dot org
                   ` (13 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: dirk dot behme at googlemail dot com @ 2006-06-12 15:44 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from dirk dot behme at googlemail dot com  2006-06-12 15:34 -------

Until a fix for this bug is found, there are two possible workarounds:

- Compile kernels sound system as modules and compile these modules with -O1
instead of default -Os or -O2 (e.g. by changing main Makefile).

- Use this patch from Fengwei Yin <yfw.debian@gmail.com> (then -Os or -O2
should work):

-- linux/include/sound/pcm_params.h    2005-03-02 09:31:53.000000000 +0800
+++ linux-ok/include/sound/pcm_params.h 2006-06-08 09:57:11.000000000 +0800
@@ -196,6 +196,11 @@ INLINE int snd_mask_refine(snd_mask_t *m
       snd_mask_t old;
       assert(!snd_mask_empty(mask));
       snd_mask_copy(&old, mask);
+       /*
+        * add the barrier to fix the optimization
+        * error of GCC 4.1
+       */
+       mb();
       snd_mask_intersect(mask, v);
       if (snd_mask_empty(mask))
               return -EINVAL; 

Note that this is only a workaround. It will drop the Alsa subsystem
performance.


-- 

dirk dot behme at googlemail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |dirk dot behme at googlemail
                   |                            |dot com


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
                   ` (6 preceding siblings ...)
  2006-06-12 15:44 ` dirk dot behme at googlemail dot com
@ 2006-06-26 19:13 ` rguenth at gcc dot gnu dot org
  2006-07-15 19:22 ` enrico dot scholz at informatik dot tu-chemnitz dot de
                   ` (12 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: rguenth at gcc dot gnu dot org @ 2006-06-26 19:13 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from rguenth at gcc dot gnu dot org  2006-06-26 18:54 -------
One thing we have is some extra virtual operands from CCP:

before:

<bb 2>:
mask_5 = &old;
v_7 = mask_6;
#   SFT.2_33 = V_MAY_DEF <SFT.2_32>;
*mask_5 = *v_7;
mask_8 = mask_6;
v_10 = v_9;
i_11 = 0;
goto <bb 4> (<L4>);



after:

<bb 2>:
mask_5 = &old;
v_7 = mask_6;
#   SFT.2 = V_MUST_DEF <SFT.2>;
#   VUSE <SFT.2>;
old = *v_7;
mask_8 = mask_6;
v_10 = v_9;
i_11 = 0;
goto <bb 4> (<L4>);

all of the SFT.2 are actually the same tree object.


-- 

rguenth at gcc dot gnu dot org changed:

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


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
                   ` (7 preceding siblings ...)
  2006-06-26 19:13 ` rguenth at gcc dot gnu dot org
@ 2006-07-15 19:22 ` enrico dot scholz at informatik dot tu-chemnitz dot de
  2006-07-15 19:26 ` enrico dot scholz at informatik dot tu-chemnitz dot de
                   ` (11 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: enrico dot scholz at informatik dot tu-chemnitz dot de @ 2006-07-15 19:22 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from enrico dot scholz at informatik dot tu-chemnitz dot de  2006-07-15 19:22 -------
*** Bug 28362 has been marked as a duplicate of this bug. ***


-- 

enrico dot scholz at informatik dot tu-chemnitz dot de changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |enrico dot scholz at
                   |                            |informatik dot tu-chemnitz
                   |                            |dot de


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
                   ` (8 preceding siblings ...)
  2006-07-15 19:22 ` enrico dot scholz at informatik dot tu-chemnitz dot de
@ 2006-07-15 19:26 ` enrico dot scholz at informatik dot tu-chemnitz dot de
  2006-07-18 21:42 ` pbrook at gcc dot gnu dot org
                   ` (10 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: enrico dot scholz at informatik dot tu-chemnitz dot de @ 2006-07-15 19:26 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from enrico dot scholz at informatik dot tu-chemnitz dot de  2006-07-15 19:26 -------
Bug #28362 contains a self contained example. Basically, it needs only

| some_struct = *some_other_struct;

to trigger this bug. I wonder for how much other segfaults/brokeness this bug
is responsible for.

Btw, happens for every gcc release (3.4.6, 4.0.3, 4.1.1).


-- 


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
                   ` (9 preceding siblings ...)
  2006-07-15 19:26 ` enrico dot scholz at informatik dot tu-chemnitz dot de
@ 2006-07-18 21:42 ` pbrook at gcc dot gnu dot org
  2006-07-20 13:57 ` pbrook at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: pbrook at gcc dot gnu dot org @ 2006-07-18 21:42 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from pbrook at gcc dot gnu dot org  2006-07-18 21:42 -------
I'm working on this. Looks like a CSE bug.


-- 

pbrook at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |pbrook at gcc dot gnu dot
                   |dot org                     |org
             Status|WAITING                     |ASSIGNED
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2006-07-18 21:42:28
               date|                            |


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
                   ` (10 preceding siblings ...)
  2006-07-18 21:42 ` pbrook at gcc dot gnu dot org
@ 2006-07-20 13:57 ` pbrook at gcc dot gnu dot org
  2006-07-20 13:59 ` pbrook at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: pbrook at gcc dot gnu dot org @ 2006-07-20 13:57 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from pbrook at gcc dot gnu dot org  2006-07-20 13:57 -------
Subject: Bug 27363

Author: pbrook
Date: Thu Jul 20 13:57:31 2006
New Revision: 115614

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115614
Log:
2006-07-20  Paul Brook  <paul@codesourcery.com>

        PR 27363
        gcc/
        * cse.c (cse_insn): Add destination addresses to hash table. Check if
        they are invalidated by this instruction.

        gcc/testsuite/
        * gcc.dg/pr27363.c: New test.


Added:
    trunk/gcc/testsuite/gcc.dg/pr27363.c
Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/cse.c
    trunk/gcc/testsuite/ChangeLog


-- 


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
                   ` (11 preceding siblings ...)
  2006-07-20 13:57 ` pbrook at gcc dot gnu dot org
@ 2006-07-20 13:59 ` pbrook at gcc dot gnu dot org
  2006-07-20 15:07 ` pbrook at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: pbrook at gcc dot gnu dot org @ 2006-07-20 13:59 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from pbrook at gcc dot gnu dot org  2006-07-20 13:59 -------
Subject: Bug 27363

Author: pbrook
Date: Thu Jul 20 13:59:22 2006
New Revision: 115616

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115616
Log:
        Backport from mainline.
        PR 27363
        gcc/
        * cse.c (cse_insn): Add destination addresses to hash table. Check if
        they are invalidated by this instruction.

        gcc/testsuite/
        * gcc.dg/pr27363.c: New test.


Added:
    branches/csl/sourcerygxx-4_1/gcc/testsuite/gcc.dg/pr27363.c
Modified:
    branches/csl/sourcerygxx-4_1/ChangeLog.csl
    branches/csl/sourcerygxx-4_1/gcc/cse.c


-- 


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
                   ` (12 preceding siblings ...)
  2006-07-20 13:59 ` pbrook at gcc dot gnu dot org
@ 2006-07-20 15:07 ` pbrook at gcc dot gnu dot org
  2006-07-20 15:08 ` pbrook at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: pbrook at gcc dot gnu dot org @ 2006-07-20 15:07 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from pbrook at gcc dot gnu dot org  2006-07-20 15:07 -------
Subject: Bug 27363

Author: pbrook
Date: Thu Jul 20 15:07:25 2006
New Revision: 115620

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=115620
Log:
2006-07-20  Paul Brook  <paul@codesourcery.com>

        Backport from mainline.
        PR 27363
        gcc/
        * cse.c (cse_insn): Add destination addresses to hash table. Check if
        they are invalidated by this instruction.

        gcc/testsuite/
        * gcc.dg/pr27363.c: New test.


Added:
    branches/gcc-4_1-branch/gcc/testsuite/gcc.dg/pr27363.c
Modified:
    branches/gcc-4_1-branch/gcc/ChangeLog
    branches/gcc-4_1-branch/gcc/cse.c
    branches/gcc-4_1-branch/gcc/testsuite/ChangeLog


-- 


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
                   ` (13 preceding siblings ...)
  2006-07-20 15:07 ` pbrook at gcc dot gnu dot org
@ 2006-07-20 15:08 ` pbrook at gcc dot gnu dot org
  2006-07-20 15:37 ` rearnsha at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: pbrook at gcc dot gnu dot org @ 2006-07-20 15:08 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #15 from pbrook at gcc dot gnu dot org  2006-07-20 15:08 -------
FIxed.


-- 

pbrook at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|ASSIGNED                    |RESOLVED
         Resolution|                            |FIXED
   Target Milestone|---                         |4.2.0


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
                   ` (14 preceding siblings ...)
  2006-07-20 15:08 ` pbrook at gcc dot gnu dot org
@ 2006-07-20 15:37 ` rearnsha at gcc dot gnu dot org
  2006-07-20 15:39 ` rearnsha at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: rearnsha at gcc dot gnu dot org @ 2006-07-20 15:37 UTC (permalink / raw)
  To: gcc-bugs



-- 

rearnsha at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.2.0                       |4.1.3


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
                   ` (15 preceding siblings ...)
  2006-07-20 15:37 ` rearnsha at gcc dot gnu dot org
@ 2006-07-20 15:39 ` rearnsha at gcc dot gnu dot org
  2006-07-22  6:21 ` yfw dot debian at gmail dot com
                   ` (3 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: rearnsha at gcc dot gnu dot org @ 2006-07-20 15:39 UTC (permalink / raw)
  To: gcc-bugs



-- 

rearnsha at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|4.1.3                       |4.1.2


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
                   ` (16 preceding siblings ...)
  2006-07-20 15:39 ` rearnsha at gcc dot gnu dot org
@ 2006-07-22  6:21 ` yfw dot debian at gmail dot com
  2006-07-22  6:24 ` dirk dot behme at googlemail dot com
                   ` (2 subsequent siblings)
  20 siblings, 0 replies; 22+ messages in thread
From: yfw dot debian at gmail dot com @ 2006-07-22  6:21 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #16 from yfw dot debian at gmail dot com  2006-07-22 06:21 -------
Coooool. pbrook.
I will try the latest gcc snapshot.

Thanks a lot.


Regards
Yin, Fengwei


-- 


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
                   ` (17 preceding siblings ...)
  2006-07-22  6:21 ` yfw dot debian at gmail dot com
@ 2006-07-22  6:24 ` dirk dot behme at googlemail dot com
  2006-10-19 22:02 ` likewise at gmx dot net
  2007-01-26  2:53 ` m dot k dot edwards at gmail dot com
  20 siblings, 0 replies; 22+ messages in thread
From: dirk dot behme at googlemail dot com @ 2006-07-22  6:24 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #17 from dirk dot behme at googlemail dot com  2006-07-22 06:24 -------
Subject: Re:  ARM gcc 4.1 optimization bug

yfw dot debian at gmail dot com wrote:
> ------- Comment #16 from yfw dot debian at gmail dot com  2006-07-22 06:21 -------
> Coooool. pbrook.
> I will try the latest gcc snapshot.
> 
> Thanks a lot.

I tested it using crosstool and applying the patch manually 
against GCC 4.1.0 and it works.

Many thanks from me as well,

Dirk


-- 


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
                   ` (18 preceding siblings ...)
  2006-07-22  6:24 ` dirk dot behme at googlemail dot com
@ 2006-10-19 22:02 ` likewise at gmx dot net
  2007-01-26  2:53 ` m dot k dot edwards at gmail dot com
  20 siblings, 0 replies; 22+ messages in thread
From: likewise at gmx dot net @ 2006-10-19 22:02 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #18 from likewise at gmx dot net  2006-10-19 22:01 -------
Created an attachment (id=12464)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=12464&action=view)
Fix.

Copied from
http://www.freaknet.org/martin/crosstool/patches/gcc-4.1.1/gcc-4.1.1-bugfix-27363.patch
so that it linked to this report.


-- 


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


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

* [Bug target/27363] ARM gcc 4.1 optimization bug
  2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
                   ` (19 preceding siblings ...)
  2006-10-19 22:02 ` likewise at gmx dot net
@ 2007-01-26  2:53 ` m dot k dot edwards at gmail dot com
  20 siblings, 0 replies; 22+ messages in thread
From: m dot k dot edwards at gmail dot com @ 2007-01-26  2:53 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #19 from m dot k dot edwards at gmail dot com  2007-01-26 02:53 -------
Still generates bad code for snd_mask_refine in the gcc-4.1-20070115 snapshot. 
I have verified that the patch claimed to fix this bug is in this snapshot.  My
gcc is tuned for arm-926ejs, old ABI.  -O1 works.


-- 

m dot k dot edwards at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |m dot k dot edwards at gmail
                   |                            |dot com


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


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

end of thread, other threads:[~2007-01-26  2:53 UTC | newest]

Thread overview: 22+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-04-30  4:48 [Bug c/27363] New: ARM gcc 4.1 optimization bug nh26223 at yahoo dot com dot cn
2006-04-30  5:01 ` [Bug target/27363] " pinskia at gcc dot gnu dot org
2006-04-30  5:09 ` yfw dot debian at gmail dot com
2006-04-30  5:32 ` yfw dot debian at gmail dot com
2006-04-30  9:09 ` yfw dot debian at gmail dot com
2006-05-14 17:15 ` s_j_newbury at yahoo dot co dot uk
2006-06-07 16:08 ` dirk dot behme at googlemail dot com
2006-06-12 15:44 ` dirk dot behme at googlemail dot com
2006-06-26 19:13 ` rguenth at gcc dot gnu dot org
2006-07-15 19:22 ` enrico dot scholz at informatik dot tu-chemnitz dot de
2006-07-15 19:26 ` enrico dot scholz at informatik dot tu-chemnitz dot de
2006-07-18 21:42 ` pbrook at gcc dot gnu dot org
2006-07-20 13:57 ` pbrook at gcc dot gnu dot org
2006-07-20 13:59 ` pbrook at gcc dot gnu dot org
2006-07-20 15:07 ` pbrook at gcc dot gnu dot org
2006-07-20 15:08 ` pbrook at gcc dot gnu dot org
2006-07-20 15:37 ` rearnsha at gcc dot gnu dot org
2006-07-20 15:39 ` rearnsha at gcc dot gnu dot org
2006-07-22  6:21 ` yfw dot debian at gmail dot com
2006-07-22  6:24 ` dirk dot behme at googlemail dot com
2006-10-19 22:02 ` likewise at gmx dot net
2007-01-26  2:53 ` m dot k dot edwards 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).