public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug middle-end/21356] New: Dominance error after aggressive dead code elimination (cd_dce)
@ 2005-05-03 11:40 loki at gcc dot gnu dot org
  2005-05-03 16:00 ` [Bug tree-optimization/21356] [4.1 Regression] " pinskia at gcc dot gnu dot org
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: loki at gcc dot gnu dot org @ 2005-05-03 11:40 UTC (permalink / raw)
  To: gcc-bugs

I have internal compiler error for the following c code:
int a;
void* p;

void foo (void)
{
  switch (a)
  {
    a0: case 0:   p = &&a1;
    a1: case 1:   p = &&a2;
    a2: default:  p = &&a1;
  }
  goto *p;
}

Command line:
gcc -c -O2 1.c

Output:
1.c: In function 'foo':
1.c:5: error: dominator of 1 should be 2, not 0
1.c:5: internal compiler error: in verify_dominators, at dominance.c:875
...

-- 
           Summary: Dominance error after aggressive dead code elimination
                    (cd_dce)
           Product: gcc
           Version: 4.1.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: middle-end
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: loki at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org
GCC target triplet: i686-pc-linux-gnu-gcc


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


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

* [Bug tree-optimization/21356] [4.1 Regression] Dominance error after aggressive dead code elimination (cd_dce)
  2005-05-03 11:40 [Bug middle-end/21356] New: Dominance error after aggressive dead code elimination (cd_dce) loki at gcc dot gnu dot org
@ 2005-05-03 16:00 ` pinskia at gcc dot gnu dot org
  2005-07-06 13:23 ` pinskia at gcc dot gnu dot org
                   ` (6 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-05-03 16:00 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-05-03 16:00 -------
Confirmed, a regression from 4.0.0.

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
          Component|middle-end                  |tree-optimization
     Ever Confirmed|                            |1
           Keywords|                            |ice-on-valid-code
   Last reconfirmed|0000-00-00 00:00:00         |2005-05-03 16:00:08
               date|                            |
            Summary|Dominance error after       |[4.1 Regression] Dominance
                   |aggressive dead code        |error after aggressive dead
                   |elimination (cd_dce)        |code elimination (cd_dce)
   Target Milestone|---                         |4.1.0


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


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

* [Bug tree-optimization/21356] [4.1 Regression] Dominance error after aggressive dead code elimination (cd_dce)
  2005-05-03 11:40 [Bug middle-end/21356] New: Dominance error after aggressive dead code elimination (cd_dce) loki at gcc dot gnu dot org
  2005-05-03 16:00 ` [Bug tree-optimization/21356] [4.1 Regression] " pinskia at gcc dot gnu dot org
@ 2005-07-06 13:23 ` pinskia at gcc dot gnu dot org
  2005-07-06 14:06 ` dberlin at dberlin dot org
                   ` (5 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2005-07-06 13:23 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2005-07-06 13:23 -------
Fixed.

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


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


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

* [Bug tree-optimization/21356] [4.1 Regression] Dominance error after aggressive dead code elimination (cd_dce)
  2005-05-03 11:40 [Bug middle-end/21356] New: Dominance error after aggressive dead code elimination (cd_dce) loki at gcc dot gnu dot org
  2005-05-03 16:00 ` [Bug tree-optimization/21356] [4.1 Regression] " pinskia at gcc dot gnu dot org
  2005-07-06 13:23 ` pinskia at gcc dot gnu dot org
@ 2005-07-06 14:06 ` dberlin at dberlin dot org
  2005-07-07  6:57 ` rakdver at atrey dot karlin dot mff dot cuni dot cz
                   ` (4 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: dberlin at dberlin dot org @ 2005-07-06 14:06 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From dberlin at gcc dot gnu dot org  2005-07-06 14:05 -------
Subject: Re:  [4.1 Regression] Dominance error
	after aggressive dead code elimination (cd_dce)

On Tue, 2005-07-05 at 23:29 -0600, Jeffrey A Law wrote:
> DCE in aggressive mode sometimes is able to remove control structures
> and thus edge from the CFG.  Sometimes removal of edges from the CFG
> changes the dominator tree, but we make no attempt to actually keep
> the dominators up-to-date.
> 
> In this testcase failure to keep the dominators up-to-date leads to
> a checking failure.  This is trivially addressed by arranging for the
> dominators to be recomputed if we remove edges from the CFG.  An
> enterprising individual might be able to incrementally update the
> dominators,

Uh, we have code to incrementally update the dominators.
Just use iterate_fix_dominators 



-- 


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


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

* [Bug tree-optimization/21356] [4.1 Regression] Dominance error after aggressive dead code elimination (cd_dce)
  2005-05-03 11:40 [Bug middle-end/21356] New: Dominance error after aggressive dead code elimination (cd_dce) loki at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2005-07-06 14:06 ` dberlin at dberlin dot org
@ 2005-07-07  6:57 ` rakdver at atrey dot karlin dot mff dot cuni dot cz
  2005-07-08 20:53 ` dnovillo at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: rakdver at atrey dot karlin dot mff dot cuni dot cz @ 2005-07-07  6:57 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From rakdver at atrey dot karlin dot mff dot cuni dot cz  2005-07-07 06:57 -------
Subject: Re:  [4.1 Regression] Dominance error after aggressive dead code elimination (cd_dce)

Hello,

> On Tue, 2005-07-05 at 23:29 -0600, Jeffrey A Law wrote:
> > DCE in aggressive mode sometimes is able to remove control structures
> > and thus edge from the CFG.  Sometimes removal of edges from the CFG
> > changes the dominator tree, but we make no attempt to actually keep
> > the dominators up-to-date.
> > 
> > In this testcase failure to keep the dominators up-to-date leads to
> > a checking failure.  This is trivially addressed by arranging for the
> > dominators to be recomputed if we remove edges from the CFG.  An
> > enterprising individual might be able to incrementally update the
> > dominators,
> 
> Uh, we have code to incrementally update the dominators.
> Just use iterate_fix_dominators 

note however that to use it you must precisely know the set of basic
blocks whose dominators may change (which may or may not be the case
with CDDCE, I haven't thought about it), and the set should rather be
small -- iterate_fix_dominators is O(n^3) in the size of the set.

All in all, if the changes to cfg are indeed rare (which they should be,
given that the problem remained unnoticed so far), just having the
dominators to be recomputed is much easier and safer.

Zdenek


-- 


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


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

* [Bug tree-optimization/21356] [4.1 Regression] Dominance error after aggressive dead code elimination (cd_dce)
  2005-05-03 11:40 [Bug middle-end/21356] New: Dominance error after aggressive dead code elimination (cd_dce) loki at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2005-07-07  6:57 ` rakdver at atrey dot karlin dot mff dot cuni dot cz
@ 2005-07-08 20:53 ` dnovillo at gcc dot gnu dot org
  2005-07-08 21:01 ` dnovillo at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  7 siblings, 0 replies; 9+ messages in thread
From: dnovillo at gcc dot gnu dot org @ 2005-07-08 20:53 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From dnovillo at gcc dot gnu dot org  2005-07-08 20:53 -------

The patch for this PR causes bootstrap failures after enabling the new points-to
solver.  I will try to find another solution for this problem.

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


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


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

* [Bug tree-optimization/21356] [4.1 Regression] Dominance error after aggressive dead code elimination (cd_dce)
  2005-05-03 11:40 [Bug middle-end/21356] New: Dominance error after aggressive dead code elimination (cd_dce) loki at gcc dot gnu dot org
                   ` (4 preceding siblings ...)
  2005-07-08 20:53 ` dnovillo at gcc dot gnu dot org
@ 2005-07-08 21:01 ` dnovillo at gcc dot gnu dot org
  2005-07-09 17:35 ` cvs-commit at gcc dot gnu dot org
  2005-07-09 17:38 ` dnovillo at gcc dot gnu dot org
  7 siblings, 0 replies; 9+ messages in thread
From: dnovillo at gcc dot gnu dot org @ 2005-07-08 21:01 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
         AssignedTo|unassigned at gcc dot gnu   |dnovillo at gcc dot gnu dot
                   |dot org                     |org
             Status|REOPENED                    |ASSIGNED


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


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

* [Bug tree-optimization/21356] [4.1 Regression] Dominance error after aggressive dead code elimination (cd_dce)
  2005-05-03 11:40 [Bug middle-end/21356] New: Dominance error after aggressive dead code elimination (cd_dce) loki at gcc dot gnu dot org
                   ` (5 preceding siblings ...)
  2005-07-08 21:01 ` dnovillo at gcc dot gnu dot org
@ 2005-07-09 17:35 ` cvs-commit at gcc dot gnu dot org
  2005-07-09 17:38 ` dnovillo at gcc dot gnu dot org
  7 siblings, 0 replies; 9+ messages in thread
From: cvs-commit at gcc dot gnu dot org @ 2005-07-09 17:35 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-07-09 17:35 -------
Subject: Bug 21356

CVSROOT:	/cvs/gcc
Module name:	gcc
Changes by:	dnovillo@gcc.gnu.org	2005-07-09 17:35:05

Modified files:
	gcc            : ChangeLog passes.c 

Log message:
	PR 21356
	PR 22332
	* passes.c (execute_todo): Cleanup the CFG before updating
	SSA.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.9394&r2=2.9395
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/passes.c.diff?cvsroot=gcc&r1=2.98&r2=2.99



-- 


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


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

* [Bug tree-optimization/21356] [4.1 Regression] Dominance error after aggressive dead code elimination (cd_dce)
  2005-05-03 11:40 [Bug middle-end/21356] New: Dominance error after aggressive dead code elimination (cd_dce) loki at gcc dot gnu dot org
                   ` (6 preceding siblings ...)
  2005-07-09 17:35 ` cvs-commit at gcc dot gnu dot org
@ 2005-07-09 17:38 ` dnovillo at gcc dot gnu dot org
  7 siblings, 0 replies; 9+ messages in thread
From: dnovillo at gcc dot gnu dot org @ 2005-07-09 17:38 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From dnovillo at gcc dot gnu dot org  2005-07-09 17:38 -------

Fixed.  http://gcc.gnu.org/ml/gcc-patches/2005-07/msg00651.html.

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


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


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

end of thread, other threads:[~2005-07-09 17:38 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-05-03 11:40 [Bug middle-end/21356] New: Dominance error after aggressive dead code elimination (cd_dce) loki at gcc dot gnu dot org
2005-05-03 16:00 ` [Bug tree-optimization/21356] [4.1 Regression] " pinskia at gcc dot gnu dot org
2005-07-06 13:23 ` pinskia at gcc dot gnu dot org
2005-07-06 14:06 ` dberlin at dberlin dot org
2005-07-07  6:57 ` rakdver at atrey dot karlin dot mff dot cuni dot cz
2005-07-08 20:53 ` dnovillo at gcc dot gnu dot org
2005-07-08 21:01 ` dnovillo at gcc dot gnu dot org
2005-07-09 17:35 ` cvs-commit at gcc dot gnu dot org
2005-07-09 17:38 ` dnovillo 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).