public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/37377]  New: [4.4 Regression] Bootstrap failure compiling libgcc
@ 2008-09-04 20:23 ebotcazou at gcc dot gnu dot org
  2008-09-04 20:31 ` [Bug rtl-optimization/37377] " ebotcazou at gcc dot gnu dot org
                   ` (16 more replies)
  0 siblings, 17 replies; 18+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2008-09-04 20:23 UTC (permalink / raw)
  To: gcc-bugs

At revision 140002 I get on i586-linux:

/home/eric/build/gcc/native32/./gcc/xgcc -B/home/eric/build/gcc/native32/./gcc/
-B/home/eric/install/gcc/i586-suse-linux/bin/
-B/home/eric/install/gcc/i586-suse-linux/lib/ -isystem
/home/eric/install/gcc/i586-suse-linux/include -isystem
/home/eric/install/gcc/i586-suse-linux/sys-include -g -O2 -O2  -g -O2 -DIN_GCC 
 -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wcast-qual
-Wold-style-definition  -isystem ./include  -fPIC -g -DHAVE_GTHR_DEFAULT
-DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED   -I. -I. -I../.././gcc
-I/home/eric/svn/gcc/libgcc -I/home/eric/svn/gcc/libgcc/.
-I/home/eric/svn/gcc/libgcc/../gcc -I/home/eric/svn/gcc/libgcc/../include
-I/home/eric/svn/gcc/libgcc/config/libbid -DENABLE_DECIMAL_BID_FORMAT
-DHAVE_CC_TLS -DUSE_TLS -o _popcountdi2.o -MT _popcountdi2.o -MD -MP -MF
_popcountdi2.dep -DL_popcountdi2 -c /home/eric/svn/gcc/libgcc/../gcc/libgcc2.c
\
          -fvisibility=hidden -DHIDE_EXPORTS
/home/eric/svn/gcc/libgcc/../gcc/libgcc2.c: In function '__popcountdi2':
/home/eric/svn/gcc/libgcc/../gcc/libgcc2.c:813: internal compiler error:
Segmentation fault
Please submit a full bug report,
with preprocessed source if appropriate.
See <http://gcc.gnu.org/bugs.html> for instructions.
make[3]: *** [_popcountdi2.o] Error 1
make[3]: Leaving directory
`/home/eric/build/gcc/native32/i586-suse-linux/libgcc'
make[2]: *** [all-stage2-target-libgcc] Error 2
make[2]: Leaving directory `/home/eric/build/gcc/native32'
make[1]: *** [stage2-bubble] Error 2
make[1]: Leaving directory `/home/eric/build/gcc/native32'
make: *** [all] Error 2


-- 
           Summary: [4.4 Regression] Bootstrap failure compiling libgcc
           Product: gcc
           Version: 4.4.0
            Status: UNCONFIRMED
          Keywords: wrong-code
          Severity: blocker
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: ebotcazou at gcc dot gnu dot org
 GCC build triplet: i586-*-linux


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


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

* [Bug rtl-optimization/37377] [4.4 Regression] Bootstrap failure compiling libgcc
  2008-09-04 20:23 [Bug rtl-optimization/37377] New: [4.4 Regression] Bootstrap failure compiling libgcc ebotcazou at gcc dot gnu dot org
@ 2008-09-04 20:31 ` ebotcazou at gcc dot gnu dot org
  2008-09-04 20:33 ` ebotcazou at gcc dot gnu dot org
                   ` (15 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2008-09-04 20:31 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #1 from ebotcazou at gcc dot gnu dot org  2008-09-04 20:30 -------
It's a miscompilation of df-scan.c:df_reorganize_refs_by_reg by
regalloc/reload.


-- 

ebotcazou at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |vmakarov at redhat dot com


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


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

* [Bug rtl-optimization/37377] [4.4 Regression] Bootstrap failure compiling libgcc
  2008-09-04 20:23 [Bug rtl-optimization/37377] New: [4.4 Regression] Bootstrap failure compiling libgcc ebotcazou at gcc dot gnu dot org
  2008-09-04 20:31 ` [Bug rtl-optimization/37377] " ebotcazou at gcc dot gnu dot org
@ 2008-09-04 20:33 ` ebotcazou at gcc dot gnu dot org
  2008-09-04 20:37 ` ebotcazou at gcc dot gnu dot org
                   ` (14 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2008-09-04 20:33 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #2 from ebotcazou at gcc dot gnu dot org  2008-09-04 20:32 -------
Created an attachment (id=16225)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16225&action=view)
Preprocessed source

Sorry, I don't have time to reduce it.

Compile with -O2 -fomit-frame-pointer -mtune=pentium.


-- 


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


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

* [Bug rtl-optimization/37377] [4.4 Regression] Bootstrap failure compiling libgcc
  2008-09-04 20:23 [Bug rtl-optimization/37377] New: [4.4 Regression] Bootstrap failure compiling libgcc ebotcazou at gcc dot gnu dot org
  2008-09-04 20:31 ` [Bug rtl-optimization/37377] " ebotcazou at gcc dot gnu dot org
  2008-09-04 20:33 ` ebotcazou at gcc dot gnu dot org
@ 2008-09-04 20:37 ` ebotcazou at gcc dot gnu dot org
  2008-09-04 20:47 ` ebotcazou at gcc dot gnu dot org
                   ` (13 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2008-09-04 20:37 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #3 from ebotcazou at gcc dot gnu dot org  2008-09-04 20:36 -------
In the assembly file:

.L871:
        movl    %ebx, %eax
        movl    %edx, 20(%ebx)
        call    T.911
        movl    df, %esi
        movl    60(%esi), %eax
        movl    %esi, 36(%esp)  <-- save df
        movl    (%eax), %eax
        movl    %eax, 44(%esp)
        testl   %eax, %eax
        je      .L1052

[...]

L895:
        movl    4(%ecx), %esi
        cmpb    $0, 22(%esp)
        je      .L896
        movl    144(%edi), %eax
        movl    (%eax,%esi,4), %eax
        movl    4(%eax), %edx
        movl    (%edx), %eax
        testl   %eax, %eax
        je      .L896
        movl    16(%esp), %ebp
        movl    8(%ebp), %ebp
        movl    %ebp, 36(%esp)  <-- overwrite df
        .p2align 4,,7
        .p2align 3
.L897:
        movl    28(%eax), %eax
        addl    $4, %edx
        incl    (%ebp,%eax,4)
        movl    (%edx), %eax
        testl   %eax, %eax
        jne     .L897
.L896:
        cmpb    $0, 23(%esp)
        je      .L898
        movl    144(%edi), %eax
        movl    (%eax,%esi,4), %eax
        movl    8(%eax), %edx
        movl    (%edx), %eax
        testl   %eax, %eax
        je      .L898
        movl    16(%esp), %ebp
        movl    8(%ebp), %ebp
        movl    %ebp, 36(%esp)  <-- overwrite df

[...]

.L995:
        movl    36(%esp), %ecx  <-- load df
        movl    60(%ecx), %eax
        movl    (%eax), %eax    <-- segv (eax == 0)
        movl    %eax, 60(%esp)
        testl   %eax, %eax
        je      .L1059


-- 


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


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

* [Bug rtl-optimization/37377] [4.4 Regression] Bootstrap failure compiling libgcc
  2008-09-04 20:23 [Bug rtl-optimization/37377] New: [4.4 Regression] Bootstrap failure compiling libgcc ebotcazou at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2008-09-04 20:37 ` ebotcazou at gcc dot gnu dot org
@ 2008-09-04 20:47 ` ebotcazou at gcc dot gnu dot org
  2008-09-05  4:48 ` hjl dot tools at gmail dot com
                   ` (12 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2008-09-04 20:47 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #4 from ebotcazou at gcc dot gnu dot org  2008-09-04 20:46 -------
Excerpt from 168r.asmcons:

(insn:HI 108 107 109 14 /home/eric/svn/gcc/gcc/df-scan.c:1479 (set (reg/f:SI
373 [ df.3419 ])
        (mem/f/c/i:SI (symbol_ref:SI ("df") [flags 0x40] <var_decl 0xf759baa8
df>) [166 df+0 S4 A32])) 41 {*movsi_1} (nil))

[...]
(insn:HI 301 300 309 49 /home/eric/svn/gcc/gcc/df-scan.c:1508 (set (reg/f:SI 87
[ temp.3399 ])
        (mem/s/f:SI (plus:SI (reg/v/f:SI 214 [ ref_info ])
                (const_int 8 [0x8])) [160 <variable>.count+0 S4 A32])) 41
{*movsi_1} (nil))

[...]

(insn:HI 324 323 332 53 /home/eric/svn/gcc/gcc/df-scan.c:1514 (set (reg/f:SI 85
[ temp.3405 ])
        (mem/s/f:SI (plus:SI (reg/v/f:SI 214 [ ref_info ])
                (const_int 8 [0x8])) [160 <variable>.count+0 S4 A32])) 41
{*movsi_1} (nil))


Excerpt from 174r.ira:

changing reg in insn 324
changing reg in insn 1590
      Assigning 85(freq=162) slot 14 of 373
 Register 85 now on stack.

changing reg in insn 301
changing reg in insn 1579
      Assigning 87(freq=162) slot 14 of 85 373
 Register 87 now on stack.


-- 


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


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

* [Bug rtl-optimization/37377] [4.4 Regression] Bootstrap failure compiling libgcc
  2008-09-04 20:23 [Bug rtl-optimization/37377] New: [4.4 Regression] Bootstrap failure compiling libgcc ebotcazou at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2008-09-04 20:47 ` ebotcazou at gcc dot gnu dot org
@ 2008-09-05  4:48 ` hjl dot tools at gmail dot com
  2008-09-05  6:25 ` ebotcazou at gcc dot gnu dot org
                   ` (11 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: hjl dot tools at gmail dot com @ 2008-09-05  4:48 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #5 from hjl dot tools at gmail dot com  2008-09-05 04:47 -------
I tried revision 140023 on RHEL4U6. I can bootstrap
with --enable-languages=c i586-linux. 


-- 

hjl dot tools at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hjl dot tools at gmail dot
                   |                            |com


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


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

* [Bug rtl-optimization/37377] [4.4 Regression] Bootstrap failure compiling libgcc
  2008-09-04 20:23 [Bug rtl-optimization/37377] New: [4.4 Regression] Bootstrap failure compiling libgcc ebotcazou at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2008-09-05  4:48 ` hjl dot tools at gmail dot com
@ 2008-09-05  6:25 ` ebotcazou at gcc dot gnu dot org
  2008-09-05 13:48 ` hjl dot tools at gmail dot com
                   ` (10 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2008-09-05  6:25 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #6 from ebotcazou at gcc dot gnu dot org  2008-09-05 06:24 -------
> I tried revision 140023 on RHEL4U6. I can bootstrap
> with --enable-languages=c i586-linux. 

Which branch?  I still get the failure on mainline at revision 140025.


-- 


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


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

* [Bug rtl-optimization/37377] [4.4 Regression] Bootstrap failure compiling libgcc
  2008-09-04 20:23 [Bug rtl-optimization/37377] New: [4.4 Regression] Bootstrap failure compiling libgcc ebotcazou at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2008-09-05  6:25 ` ebotcazou at gcc dot gnu dot org
@ 2008-09-05 13:48 ` hjl dot tools at gmail dot com
  2008-09-07 14:00 ` ebotcazou at gcc dot gnu dot org
                   ` (9 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: hjl dot tools at gmail dot com @ 2008-09-05 13:48 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #7 from hjl dot tools at gmail dot com  2008-09-05 13:46 -------
(In reply to comment #6)
> > I tried revision 140023 on RHEL4U6. I can bootstrap
> > with --enable-languages=c i586-linux. 
> 
> Which branch?  I still get the failure on mainline at revision 140025.
> 

See

http://gcc.gnu.org/ml/gcc-testresults/2008-09/msg00384.html

Mainline can bootstrap with i586-linux. But there are some additional
testsuite failures.


-- 

hjl dot tools at gmail dot com changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
   Last reconfirmed|0000-00-00 00:00:00         |2008-09-05 13:46:52
               date|                            |


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


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

* [Bug rtl-optimization/37377] [4.4 Regression] Bootstrap failure compiling libgcc
  2008-09-04 20:23 [Bug rtl-optimization/37377] New: [4.4 Regression] Bootstrap failure compiling libgcc ebotcazou at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2008-09-05 13:48 ` hjl dot tools at gmail dot com
@ 2008-09-07 14:00 ` ebotcazou at gcc dot gnu dot org
  2008-09-07 15:47 ` ebotcazou at gcc dot gnu dot org
                   ` (8 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2008-09-07 14:00 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #8 from ebotcazou at gcc dot gnu dot org  2008-09-07 13:58 -------
> See
>
> http://gcc.gnu.org/ml/gcc-testresults/2008-09/msg00384.html
> 
> Mainline can bootstrap with i586-linux. But there are some additional
> testsuite failures.

Thanks for trying to reproduce, this is very helpful.  I'm sorry, I forgot
something: you must configure with RTL checking (--enable-checking=yes,rtl)
in order to have the miscompilation.

I'm going to attach a simplified testcase (which can be compiled by any x86
compiler) and the analysis.


-- 


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


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

* [Bug rtl-optimization/37377] [4.4 Regression] Bootstrap failure compiling libgcc
  2008-09-04 20:23 [Bug rtl-optimization/37377] New: [4.4 Regression] Bootstrap failure compiling libgcc ebotcazou at gcc dot gnu dot org
                   ` (7 preceding siblings ...)
  2008-09-07 14:00 ` ebotcazou at gcc dot gnu dot org
@ 2008-09-07 15:47 ` ebotcazou at gcc dot gnu dot org
  2008-09-07 16:02 ` ebotcazou at gcc dot gnu dot org
                   ` (7 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2008-09-07 15:47 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #9 from ebotcazou at gcc dot gnu dot org  2008-09-07 15:45 -------
Created an attachment (id=16247)
 --> (http://gcc.gnu.org/bugzilla/attachment.cgi?id=16247&action=view)
Simplified testcase.

It is still big, but only 2 functions eventually reach IRA.

Compile with -O2 -fomit-frame-pointer -mtune=pentium.


-- 

ebotcazou at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
  Attachment #16225|0                           |1
        is obsolete|                            |


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


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

* [Bug rtl-optimization/37377] [4.4 Regression] Bootstrap failure compiling libgcc
  2008-09-04 20:23 [Bug rtl-optimization/37377] New: [4.4 Regression] Bootstrap failure compiling libgcc ebotcazou at gcc dot gnu dot org
                   ` (8 preceding siblings ...)
  2008-09-07 15:47 ` ebotcazou at gcc dot gnu dot org
@ 2008-09-07 16:02 ` ebotcazou at gcc dot gnu dot org
  2008-09-08 14:12 ` vmakarov at redhat dot com
                   ` (6 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2008-09-07 16:02 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #10 from ebotcazou at gcc dot gnu dot org  2008-09-07 16:01 -------
The problem is the 4th line in

      Remove r222:a590->a10(mem)
      Remove r69:a566->a389(mem)
      Remove r69:a549->a389(mem)
      Remove r376:a432->a12(mem)
      Remove r220:a148->a9(mem)

(r373 is now r376 on mainline) generated by generate_edge_moves:

        /* Actually it is not a optimization we need this code because
           the memory (remember about equivalent memory) might be ROM
           (or placed in read only section).  */
        if (ALLOCNO_HARD_REGNO (dest_allocno) < 0
            && ALLOCNO_HARD_REGNO (src_allocno) >= 0
            && not_modified_p (src_allocno, dest_allocno))
          {
            ALLOCNO_MEM_OPTIMIZED_DEST (src_allocno) = dest_allocno;
            ALLOCNO_MEM_OPTIMIZED_DEST_P (dest_allocno) = true;
            if (internal_flag_ira_verbose > 3 && ira_dump_file != NULL)
              fprintf (ira_dump_file, "      Remove r%d:a%d->a%d(mem)\n",
                       regno, ALLOCNO_NUM (src_allocno),
                       ALLOCNO_NUM (dest_allocno));
            continue;
          }

Here's the list of allocnos for r376:

579:r376 l20    5  562:r376 l21    5  545:r376 l23    5
  526:r376 l24    5  507:r376 l25    5  460:r376 l22    5  446:r376 l19    5
  432:r376 l8     5  398:r376 l7     5  386:r376 l9   mem  366:r376 l13  mem
  343:r376 l14  mem  320:r376 l16  mem  295:r376 l17  mem  270:r376 l18  mem
  227:r376 l15  mem  213:r376 l12  mem  199:r376 l11  mem  167:r376 l10  mem
   12:r376 l0   mem

The move putting back r376 to its memory location is not generated on a border
of the "5" domain.  This domain contains the 2nd and 3rd insns of comment #4.
Moreover, the live range of a460 is not added to that of a12 during flattening
so r376 is not detected as conflicting with r90 (formerly r85) and r92 (f r87).
In the end, the memory location of r376 is reused within the "5" domain without
being reset at the border.

If I comment out the code quoted above, the compiler bootstraps fine.


-- 


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


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

* [Bug rtl-optimization/37377] [4.4 Regression] Bootstrap failure compiling libgcc
  2008-09-04 20:23 [Bug rtl-optimization/37377] New: [4.4 Regression] Bootstrap failure compiling libgcc ebotcazou at gcc dot gnu dot org
                   ` (9 preceding siblings ...)
  2008-09-07 16:02 ` ebotcazou at gcc dot gnu dot org
@ 2008-09-08 14:12 ` vmakarov at redhat dot com
  2008-09-08 15:27 ` ebotcazou at gcc dot gnu dot org
                   ` (5 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: vmakarov at redhat dot com @ 2008-09-08 14:12 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #11 from vmakarov at redhat dot com  2008-09-08 14:11 -------
Eric, thanks a lot for your analysis.  It was very helpful. I've reproduced the
bug.

IRA uses live ranges to find conflicts for spill slots during reload.  Live
ranges for r376 were wrong after IR flattening.  We have the following loop
structure for the case

    l8->l7->l0
         ^
l24->l22-|

and we remove mem<-reg coping allocno values from l8 to l0 because allocnos
corresponding to r376 are not modified in the loops.  Allocno for r376 in l0
got live ranges only from l8 and l7 but not from l22 ...  Therefore IRA does
not find conflicts with another allocno (r90) in l22 and l24.

I'll send a patch to solve the problem today.  Just removing the optimization
(removing unnecessary mem<-reg) is not wise because it has significant impact
on the generated code performance.


-- 


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


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

* [Bug rtl-optimization/37377] [4.4 Regression] Bootstrap failure compiling libgcc
  2008-09-04 20:23 [Bug rtl-optimization/37377] New: [4.4 Regression] Bootstrap failure compiling libgcc ebotcazou at gcc dot gnu dot org
                   ` (10 preceding siblings ...)
  2008-09-08 14:12 ` vmakarov at redhat dot com
@ 2008-09-08 15:27 ` ebotcazou at gcc dot gnu dot org
  2008-09-09  0:04 ` hjl at gcc dot gnu dot org
                   ` (4 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2008-09-08 15:27 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #12 from ebotcazou at gcc dot gnu dot org  2008-09-08 15:25 -------
> Eric, thanks a lot for your analysis.  It was very helpful.

You're welcome!

> IRA uses live ranges to find conflicts for spill slots during reload.  Live
> ranges for r376 were wrong after IR flattening.  We have the following loop
> structure for the case
> 
>     l8->l7->l0
>          ^
> l24->l22-|
> 
> and we remove mem<-reg coping allocno values from l8 to l0 because allocnos
> corresponding to r376 are not modified in the loops.  Allocno for r376 in l0
> got live ranges only from l8 and l7 but not from l22 ...  Therefore IRA does
> not find conflicts with another allocno (r90) in l22 and l24.

Yes, my understanding was that the flattening code currently assumes that the
moves are always generated at the borders.

> I'll send a patch to solve the problem today.  Just removing the optimization
> (removing unnecessary mem<-reg) is not wise because it has significant impact
> on the generated code performance.

OK, thanks for the explanation.


-- 


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


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

* [Bug rtl-optimization/37377] [4.4 Regression] Bootstrap failure compiling libgcc
  2008-09-04 20:23 [Bug rtl-optimization/37377] New: [4.4 Regression] Bootstrap failure compiling libgcc ebotcazou at gcc dot gnu dot org
                   ` (11 preceding siblings ...)
  2008-09-08 15:27 ` ebotcazou at gcc dot gnu dot org
@ 2008-09-09  0:04 ` hjl at gcc dot gnu dot org
  2008-09-12 22:58 ` vmakarov at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: hjl at gcc dot gnu dot org @ 2008-09-09  0:04 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #13 from hjl at gcc dot gnu dot org  2008-09-09 00:03 -------
Subject: Bug 37377

Author: hjl
Date: Tue Sep  9 00:01:40 2008
New Revision: 140131

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140131
Log:
2008-09-08 Vladimir Makarov <vmakarov@redhat.com>

        PR rtl-opt/37377
        * ira-build.c (common_loop_tree_node_dominator): Remove.
        (copy_live_ranges_to_removed_store_destinations): New function.
        (regno_top_level_allocno_map): Move to top level from ...
        (ira_flattening): ... here. Use
        copy_live_ranges_to_removed_store_destinations.

        * ira-emit.c (generate_edge_moves): Fix a comment.

Modified:
    branches/ira-merge/gcc/ChangeLog.ira
    branches/ira-merge/gcc/ira-build.c
    branches/ira-merge/gcc/ira-emit.c


-- 


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


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

* [Bug rtl-optimization/37377] [4.4 Regression] Bootstrap failure compiling libgcc
  2008-09-04 20:23 [Bug rtl-optimization/37377] New: [4.4 Regression] Bootstrap failure compiling libgcc ebotcazou at gcc dot gnu dot org
                   ` (12 preceding siblings ...)
  2008-09-09  0:04 ` hjl at gcc dot gnu dot org
@ 2008-09-12 22:58 ` vmakarov at gcc dot gnu dot org
  2008-09-13  8:52 ` ebotcazou at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  16 siblings, 0 replies; 18+ messages in thread
From: vmakarov at gcc dot gnu dot org @ 2008-09-12 22:58 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #14 from vmakarov at gcc dot gnu dot org  2008-09-12 22:56 -------
Subject: Bug 37377

Author: vmakarov
Date: Fri Sep 12 22:55:23 2008
New Revision: 140325

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=140325
Log:
2008-09-12  Vladimir Makarov  <vmakarov@redhat.com>

        PR rtl-opt/37377

        * ira-build.c (common_loop_tree_node_dominator): Remove.
        (copy_live_ranges_to_removed_store_destinations): New function.
        (regno_top_level_allocno_map): Move to top level from ...
        (ira_flattening): ... here.  Use
        copy_live_ranges_to_removed_store_destinations.

        * ira-emit.c (generate_edge_moves): Fix a comment.


Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/ira-build.c
    trunk/gcc/ira-emit.c


-- 


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


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

* [Bug rtl-optimization/37377] [4.4 Regression] Bootstrap failure compiling libgcc
  2008-09-04 20:23 [Bug rtl-optimization/37377] New: [4.4 Regression] Bootstrap failure compiling libgcc ebotcazou at gcc dot gnu dot org
                   ` (13 preceding siblings ...)
  2008-09-12 22:58 ` vmakarov at gcc dot gnu dot org
@ 2008-09-13  8:52 ` ebotcazou at gcc dot gnu dot org
  2008-09-18 19:58 ` pinskia at gcc dot gnu dot org
  2009-04-11 19:48 ` tkoenig at gcc dot gnu dot org
  16 siblings, 0 replies; 18+ messages in thread
From: ebotcazou at gcc dot gnu dot org @ 2008-09-13  8:52 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #15 from ebotcazou at gcc dot gnu dot org  2008-09-13 08:51 -------
This works fine now.


-- 

ebotcazou at gcc dot gnu dot org changed:

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


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


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

* [Bug rtl-optimization/37377] [4.4 Regression] Bootstrap failure compiling libgcc
  2008-09-04 20:23 [Bug rtl-optimization/37377] New: [4.4 Regression] Bootstrap failure compiling libgcc ebotcazou at gcc dot gnu dot org
                   ` (14 preceding siblings ...)
  2008-09-13  8:52 ` ebotcazou at gcc dot gnu dot org
@ 2008-09-18 19:58 ` pinskia at gcc dot gnu dot org
  2009-04-11 19:48 ` tkoenig at gcc dot gnu dot org
  16 siblings, 0 replies; 18+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2008-09-18 19:58 UTC (permalink / raw)
  To: gcc-bugs



-- 

pinskia at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Target Milestone|---                         |4.4.0


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


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

* [Bug rtl-optimization/37377] [4.4 Regression] Bootstrap failure compiling libgcc
  2008-09-04 20:23 [Bug rtl-optimization/37377] New: [4.4 Regression] Bootstrap failure compiling libgcc ebotcazou at gcc dot gnu dot org
                   ` (15 preceding siblings ...)
  2008-09-18 19:58 ` pinskia at gcc dot gnu dot org
@ 2009-04-11 19:48 ` tkoenig at gcc dot gnu dot org
  16 siblings, 0 replies; 18+ messages in thread
From: tkoenig at gcc dot gnu dot org @ 2009-04-11 19:48 UTC (permalink / raw)
  To: gcc-bugs



------- Comment #16 from tkoenig at gcc dot gnu dot org  2009-04-11 19:48 -------
Subject: Bug 37377

Author: tkoenig
Date: Sat Apr 11 19:48:19 2009
New Revision: 145965

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=145965
Log:
2009-04-11  Thomas Koenig  <tkoenig@gcc.gnu.org>

        PR fortran/37377
        * libgfortran.h:  Introduce new macros GFC_DIMENSION_LBOUND,
        GFC_DIMENSION_UBOUND,GFC_DIMENSION_STRIDE, GFC_DIMENSION_EXTENT,
        GFC_DIMENSION_SET, GFC_DESCRIPTOR_LBOUND, GFC_DESCRIPTOR_UBOUND,
        GFC_DESCRIPTOR_EXTENT, GFC_DESCRIPTOR_EXTENT_BYTES,
        GFC_DESCRIPTOR_STRIDE, GFC_DESCRIPTOR_STRIDE_BYTES
        * runtime/in_pack_generic.c (internal_pack):  Use new macros
        for array descriptor access.
        * runtime/in_unpack_generic.c (internal_unpack):  Likewise.
        * intrinsics/dtime.c (dtime_sub):  Likewise.
        * intrinsics/cshift0 (cshift0):  Remove argument size,
        calculate directly from the array descriptor.  Use new macros
        for array descriptor access.
        * cshift0_##N:  Remove shift argument in call to cshift0.
        * cshift0_##N_char:  Mark array_length as unused.  Remove
        array_length in call to cshift0.
        * cshift0_##N_char4:  Likewise.
        * intrisics/etime.c:  Use new macros for array descriptor access.
        * intrinsics/stat.c (stat_i4_sub_0):  Likewise.
        (stat_i8_sub_0):  Likewise.
        (fstat_i4_sub):  Likewise.
        (fstat_i8_sub):  Likewise.
        * intrinsics/date_and_time.c (date_and_time):  Likewise.
        (secnds):  Likewise.
        (itime_i4):  Likewise.
        (itime_i8):  Likewise.
        (idate_i4):  Likewise.
        (idate_i8):  Likewise.
        (gmtime_i4):  Likewise.
        (gmtime_i8):  Likewise.
        (ltime_i4):  Likewise.
        (litme_i8):  Likewise.
        * intrinsics/associated.c (associated):  Likewise.
        * intrinsics/eoshift0.c (eoshift0):  Likewise.
        * intriniscs/size.c (size0):  Likewise.
        * intrinsics/random.c (arandom_r4):  Likewise.
        (arandom_r8):  Likewise.
        (arandom_r10):  Likewise.
        (arandom_r16):  Likewise.
        (random_seed_i4):  Likewise.
        (random_seed_i8):  Likewise.
        * io/list_read.c (nml_parse_qualifier):  Likewise.
        (nml_touch_nodes):  Likewise.
        (nml_read_obj):  Likewise.
        (get_name):  Likewise.
        * io/transfer.c (transfer_array):  Likewise.
        (init_loop_spec):  Likewise.
        (st_set_nml_var_dim):  Likewise.
        * io/write.c (nml_write_obj):  Likewise.
        (obj_loop):  Likewise.


Modified:
    branches/fortran-dev/libgfortran/ChangeLog.dev
    branches/fortran-dev/libgfortran/intrinsics/associated.c
    branches/fortran-dev/libgfortran/intrinsics/cshift0.c
    branches/fortran-dev/libgfortran/intrinsics/date_and_time.c
    branches/fortran-dev/libgfortran/intrinsics/dtime.c
    branches/fortran-dev/libgfortran/intrinsics/eoshift0.c
    branches/fortran-dev/libgfortran/intrinsics/etime.c
    branches/fortran-dev/libgfortran/intrinsics/random.c
    branches/fortran-dev/libgfortran/intrinsics/size.c
    branches/fortran-dev/libgfortran/intrinsics/stat.c
    branches/fortran-dev/libgfortran/io/list_read.c
    branches/fortran-dev/libgfortran/io/transfer.c
    branches/fortran-dev/libgfortran/io/write.c
    branches/fortran-dev/libgfortran/libgfortran.h
    branches/fortran-dev/libgfortran/runtime/in_pack_generic.c
    branches/fortran-dev/libgfortran/runtime/in_unpack_generic.c


-- 


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


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

end of thread, other threads:[~2009-04-11 19:48 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-09-04 20:23 [Bug rtl-optimization/37377] New: [4.4 Regression] Bootstrap failure compiling libgcc ebotcazou at gcc dot gnu dot org
2008-09-04 20:31 ` [Bug rtl-optimization/37377] " ebotcazou at gcc dot gnu dot org
2008-09-04 20:33 ` ebotcazou at gcc dot gnu dot org
2008-09-04 20:37 ` ebotcazou at gcc dot gnu dot org
2008-09-04 20:47 ` ebotcazou at gcc dot gnu dot org
2008-09-05  4:48 ` hjl dot tools at gmail dot com
2008-09-05  6:25 ` ebotcazou at gcc dot gnu dot org
2008-09-05 13:48 ` hjl dot tools at gmail dot com
2008-09-07 14:00 ` ebotcazou at gcc dot gnu dot org
2008-09-07 15:47 ` ebotcazou at gcc dot gnu dot org
2008-09-07 16:02 ` ebotcazou at gcc dot gnu dot org
2008-09-08 14:12 ` vmakarov at redhat dot com
2008-09-08 15:27 ` ebotcazou at gcc dot gnu dot org
2008-09-09  0:04 ` hjl at gcc dot gnu dot org
2008-09-12 22:58 ` vmakarov at gcc dot gnu dot org
2008-09-13  8:52 ` ebotcazou at gcc dot gnu dot org
2008-09-18 19:58 ` pinskia at gcc dot gnu dot org
2009-04-11 19:48 ` tkoenig 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).