public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug rtl-optimization/52417] New: [4.7 Regression] Infinite recursion in DSE/alias.c
@ 2012-02-28 12:40 gjl at gcc dot gnu.org
  2012-02-28 12:49 ` [Bug rtl-optimization/52417] " gjl at gcc dot gnu.org
                   ` (9 more replies)
  0 siblings, 10 replies; 11+ messages in thread
From: gjl at gcc dot gnu.org @ 2012-02-28 12:40 UTC (permalink / raw)
  To: gcc-bugs

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

             Bug #: 52417
           Summary: [4.7 Regression] Infinite recursion in DSE/alias.c
    Classification: Unclassified
           Product: gcc
           Version: 4.7.0
            Status: UNCONFIRMED
          Keywords: compile-time-hog
          Severity: major
          Priority: P3
         Component: rtl-optimization
        AssignedTo: unassigned@gcc.gnu.org
        ReportedBy: gjl@gcc.gnu.org
            Target: avr


alias.c enters an infinite recurson for the following testcases from GCC
testsuite:

gcc.c-torture/compile/pr37669-2.c

for any compilation with -O* and without -fno-dse

Target: avr
Configured with: ../../gcc.gnu.org/trunk/configure --target=avr
--prefix=/local/gnu/install/gcc-4.7 --disable-nls --with-dwarf2
--enable-checking=yes,rtl target_alias=avr --enable-languages=c,c++
Thread model: single
gcc version 4.7.0 20120228 (experimental) (GCC)

GNU C (GCC) version 4.7.0 20120228 (experimental) (avr)
        compiled by GNU C version 4.3.2 [gcc-4_3-branch revision 141291], GMP
version 4.3.2, MPFR version 2.4.2, MPC version 0.8.2


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

* [Bug rtl-optimization/52417] [4.7 Regression] Infinite recursion in DSE/alias.c
  2012-02-28 12:40 [Bug rtl-optimization/52417] New: [4.7 Regression] Infinite recursion in DSE/alias.c gjl at gcc dot gnu.org
@ 2012-02-28 12:49 ` gjl at gcc dot gnu.org
  2012-02-28 12:51 ` gjl at gcc dot gnu.org
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: gjl at gcc dot gnu.org @ 2012-02-28 12:49 UTC (permalink / raw)
  To: gcc-bugs

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

Georg-Johann Lay <gjl at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2012-02-28
                 CC|                            |eric.weddington at atmel
                   |                            |dot com
   Target Milestone|---                         |4.7.0
     Ever Confirmed|0                           |1


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

* [Bug rtl-optimization/52417] [4.7 Regression] Infinite recursion in DSE/alias.c
  2012-02-28 12:40 [Bug rtl-optimization/52417] New: [4.7 Regression] Infinite recursion in DSE/alias.c gjl at gcc dot gnu.org
  2012-02-28 12:49 ` [Bug rtl-optimization/52417] " gjl at gcc dot gnu.org
@ 2012-02-28 12:51 ` gjl at gcc dot gnu.org
  2012-03-01  3:04 ` aoliva at gcc dot gnu.org
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: gjl at gcc dot gnu.org @ 2012-02-28 12:51 UTC (permalink / raw)
  To: gcc-bugs

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

Georg-Johann Lay <gjl at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |aoliva at gcc dot gnu.org

--- Comment #1 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2012-02-28 12:48:10 UTC ---
CCing Alexandre, presumably this is caused by the last changes for PR52001.


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

* [Bug rtl-optimization/52417] [4.7 Regression] Infinite recursion in DSE/alias.c
  2012-02-28 12:40 [Bug rtl-optimization/52417] New: [4.7 Regression] Infinite recursion in DSE/alias.c gjl at gcc dot gnu.org
  2012-02-28 12:49 ` [Bug rtl-optimization/52417] " gjl at gcc dot gnu.org
  2012-02-28 12:51 ` gjl at gcc dot gnu.org
@ 2012-03-01  3:04 ` aoliva at gcc dot gnu.org
  2012-03-01  3:30 ` aoliva at gcc dot gnu.org
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: aoliva at gcc dot gnu.org @ 2012-03-01  3:04 UTC (permalink / raw)
  To: gcc-bugs

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

Alexandre Oliva <aoliva at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
         AssignedTo|unassigned at gcc dot       |aoliva at gcc dot gnu.org
                   |gnu.org                     |

--- Comment #2 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2012-03-01 03:04:18 UTC ---
It is, indeed.  Looking into it.


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

* [Bug rtl-optimization/52417] [4.7 Regression] Infinite recursion in DSE/alias.c
  2012-02-28 12:40 [Bug rtl-optimization/52417] New: [4.7 Regression] Infinite recursion in DSE/alias.c gjl at gcc dot gnu.org
                   ` (2 preceding siblings ...)
  2012-03-01  3:04 ` aoliva at gcc dot gnu.org
@ 2012-03-01  3:30 ` aoliva at gcc dot gnu.org
  2012-03-01 12:11 ` rguenth at gcc dot gnu.org
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: aoliva at gcc dot gnu.org @ 2012-03-01  3:30 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #3 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2012-03-01 03:29:45 UTC ---
Created attachment 26796
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26796
Patch that seems to cure the problem

I'm not very happy about this patch, but...  It's what I got ATM.


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

* [Bug rtl-optimization/52417] [4.7 Regression] Infinite recursion in DSE/alias.c
  2012-02-28 12:40 [Bug rtl-optimization/52417] New: [4.7 Regression] Infinite recursion in DSE/alias.c gjl at gcc dot gnu.org
                   ` (3 preceding siblings ...)
  2012-03-01  3:30 ` aoliva at gcc dot gnu.org
@ 2012-03-01 12:11 ` rguenth at gcc dot gnu.org
  2012-03-01 13:42 ` aoliva at gcc dot gnu.org
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: rguenth at gcc dot gnu.org @ 2012-03-01 12:11 UTC (permalink / raw)
  To: gcc-bugs

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

Richard Guenther <rguenth at gcc dot gnu.org> changed:

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

--- Comment #4 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-03-01 12:10:07 UTC ---
Any reason why you reduce the two loops to one?


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

* [Bug rtl-optimization/52417] [4.7 Regression] Infinite recursion in DSE/alias.c
  2012-02-28 12:40 [Bug rtl-optimization/52417] New: [4.7 Regression] Infinite recursion in DSE/alias.c gjl at gcc dot gnu.org
                   ` (4 preceding siblings ...)
  2012-03-01 12:11 ` rguenth at gcc dot gnu.org
@ 2012-03-01 13:42 ` aoliva at gcc dot gnu.org
  2012-03-01 15:45 ` jakub at gcc dot gnu.org
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: aoliva at gcc dot gnu.org @ 2012-03-01 13:42 UTC (permalink / raw)
  To: gcc-bugs

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

Alexandre Oliva <aoliva at gcc dot gnu.org> changed:

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

--- Comment #5 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2012-03-01 13:41:47 UTC ---
Created attachment 26803
  --> http://gcc.gnu.org/bugzilla/attachment.cgi?id=26803
Here's a patch I'm happier with

This patch fully restores the get_addr behavior from before my patch in case
permanent equivalences aren't in use (e.g., for any passes other than
var-tracking), enabling the heuristics that breaks equivalence cycles only when
there are equivalences in the first place.  It looks like the expensive,
seemingly exponential computational cost exhibited in dse doesn't occur with
var-tracking.  Indeed, for this particular testcase, compile time with and
without -g is pretty much the same after the patch, wth or without dse.


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

* [Bug rtl-optimization/52417] [4.7 Regression] Infinite recursion in DSE/alias.c
  2012-02-28 12:40 [Bug rtl-optimization/52417] New: [4.7 Regression] Infinite recursion in DSE/alias.c gjl at gcc dot gnu.org
                   ` (5 preceding siblings ...)
  2012-03-01 13:42 ` aoliva at gcc dot gnu.org
@ 2012-03-01 15:45 ` jakub at gcc dot gnu.org
  2012-03-01 16:55 ` gjl at gcc dot gnu.org
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 11+ messages in thread
From: jakub at gcc dot gnu.org @ 2012-03-01 15:45 UTC (permalink / raw)
  To: gcc-bugs

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

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

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

--- Comment #6 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-03-01 15:08:32 UTC ---
This patch is ok for trunk if it passes testing, please get it in before
tomorrow noon UTC.  Thanks.


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

* [Bug rtl-optimization/52417] [4.7 Regression] Infinite recursion in DSE/alias.c
  2012-02-28 12:40 [Bug rtl-optimization/52417] New: [4.7 Regression] Infinite recursion in DSE/alias.c gjl at gcc dot gnu.org
                   ` (6 preceding siblings ...)
  2012-03-01 15:45 ` jakub at gcc dot gnu.org
@ 2012-03-01 16:55 ` gjl at gcc dot gnu.org
  2012-03-01 17:00 ` aoliva at gcc dot gnu.org
  2012-03-01 17:53 ` aoliva at gcc dot gnu.org
  9 siblings, 0 replies; 11+ messages in thread
From: gjl at gcc dot gnu.org @ 2012-03-01 16:55 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #7 from Georg-Johann Lay <gjl at gcc dot gnu.org> 2012-03-01 16:54:58 UTC ---
(In reply to comment #6)
> This patch is ok for trunk if it passes testing, please get it in before
> tomorrow noon UTC.  Thanks.

The avr test suite passes fine with the patch :-)


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

* [Bug rtl-optimization/52417] [4.7 Regression] Infinite recursion in DSE/alias.c
  2012-02-28 12:40 [Bug rtl-optimization/52417] New: [4.7 Regression] Infinite recursion in DSE/alias.c gjl at gcc dot gnu.org
                   ` (7 preceding siblings ...)
  2012-03-01 16:55 ` gjl at gcc dot gnu.org
@ 2012-03-01 17:00 ` aoliva at gcc dot gnu.org
  2012-03-01 17:53 ` aoliva at gcc dot gnu.org
  9 siblings, 0 replies; 11+ messages in thread
From: aoliva at gcc dot gnu.org @ 2012-03-01 17:00 UTC (permalink / raw)
  To: gcc-bugs

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

--- Comment #8 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2012-03-01 16:58:17 UTC ---
Author: aoliva
Date: Thu Mar  1 16:58:11 2012
New Revision: 184750

URL: http://gcc.gnu.org/viewcvs?root=gcc&view=rev&rev=184750
Log:
PR debug/52001
PR rtl-optimization/52417
* cselib.c (cselib_any_perm_equivs): New variable.
(cselib_reset_table): Check that it's not set when not
preserving constants.
(cselib_add_permanent_equiv): Set it.
(cselib_have_permanent_equivalences): New.
(cselib_init, cselib_finish): Reset it.
* cselib.h (cselib_have_permanent_equivalences): Declare.
* alias.c (get_addr): Restore earlier behavior when there
aren't permanent equivalences.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/alias.c
    trunk/gcc/cselib.c
    trunk/gcc/cselib.h


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

* [Bug rtl-optimization/52417] [4.7 Regression] Infinite recursion in DSE/alias.c
  2012-02-28 12:40 [Bug rtl-optimization/52417] New: [4.7 Regression] Infinite recursion in DSE/alias.c gjl at gcc dot gnu.org
                   ` (8 preceding siblings ...)
  2012-03-01 17:00 ` aoliva at gcc dot gnu.org
@ 2012-03-01 17:53 ` aoliva at gcc dot gnu.org
  9 siblings, 0 replies; 11+ messages in thread
From: aoliva at gcc dot gnu.org @ 2012-03-01 17:53 UTC (permalink / raw)
  To: gcc-bugs

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

Alexandre Oliva <aoliva at gcc dot gnu.org> changed:

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

--- Comment #9 from Alexandre Oliva <aoliva at gcc dot gnu.org> 2012-03-01 17:53:21 UTC ---
Fixed


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

end of thread, other threads:[~2012-03-01 17:53 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-02-28 12:40 [Bug rtl-optimization/52417] New: [4.7 Regression] Infinite recursion in DSE/alias.c gjl at gcc dot gnu.org
2012-02-28 12:49 ` [Bug rtl-optimization/52417] " gjl at gcc dot gnu.org
2012-02-28 12:51 ` gjl at gcc dot gnu.org
2012-03-01  3:04 ` aoliva at gcc dot gnu.org
2012-03-01  3:30 ` aoliva at gcc dot gnu.org
2012-03-01 12:11 ` rguenth at gcc dot gnu.org
2012-03-01 13:42 ` aoliva at gcc dot gnu.org
2012-03-01 15:45 ` jakub at gcc dot gnu.org
2012-03-01 16:55 ` gjl at gcc dot gnu.org
2012-03-01 17:00 ` aoliva at gcc dot gnu.org
2012-03-01 17:53 ` aoliva at gcc dot gnu.org

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).