[Bug tree-optimization/27381] [4.2 Regression] ice on valid code with -O

2006-05-03 Thread amacleod at gcc dot gnu dot org


--- Comment #7 from amacleod at redhat dot com  2006-05-03 17:13 ---
Subject: Bug 27381

Author: amacleod
Date: Wed May  3 17:13:37 2006
New Revision: 113499

URL: http://gcc.gnu.org/viewcvs?root=gccview=revrev=113499
Log:


2006-05-02  Andrew MacLeod  [EMAIL PROTECTED]

PR tree-optimization/27381
* tree-phinodes.c (remove_phi_arg_num): When moving a phi argument, 
maintain the same immediate_use links.
* tree-ssa-operands.c (dump_immediate_uses_for): Show iteration marker 
node rather than segfaulting.


Modified:
trunk/gcc/ChangeLog
trunk/gcc/tree-phinodes.c
trunk/gcc/tree-ssa-operands.c


-- 


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



[Bug tree-optimization/27381] [4.2 Regression] ice on valid code with -O

2006-05-03 Thread pinskia at gcc dot gnu dot org


--- Comment #8 from pinskia at gcc dot gnu dot org  2006-05-04 04:53 ---
Fixed.


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution||FIXED


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



[Bug tree-optimization/27381] [4.2 Regression] ice on valid code with -O

2006-05-02 Thread pinskia at gcc dot gnu dot org


-- 

pinskia at gcc dot gnu dot org changed:

   What|Removed |Added

   Severity|normal  |blocker
  Component|c   |tree-optimization
Summary|ice on valid code with -O   |[4.2 Regression] ice on
   ||valid code with -O
   Target Milestone|--- |4.2.0


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



[Bug tree-optimization/27381] [4.2 Regression] ice on valid code with -O

2006-05-02 Thread amacleod at redhat dot com


--- Comment #5 from amacleod at redhat dot com  2006-05-02 15:38 ---
The assert condition is not flawed.  It has exposed a second bug with the old
immuse iterator scheme that was also hidden by the old algorithm work around
Jeff had implemented.

When iterating over the immediate uses, and deleting a stmt (such as a
conditional) causes an edge to be removed, PHI nodes have an argument deleted.  

when we remove PHI arguments, we move the last phi argument to whatever
position we actually deleted, and reduce the argument count.  When arguments
are moved, they were simply being delinked and then linked back into the use
chain. 

In this particular example, the argument being moved was another occurence of
the ssa_name being iterated over, and by delinking it and linking it back in,
it was moved back to the beginning of the immuse list. This caused it to be
missed during the iteration pahse, and rightfully triggered the assert.

The fix is to simply keep the same linked position when the argument is moved
instead of removing it from the list and linking it back in.

Patch is currently being tested.

Andrew


-- 

amacleod at redhat dot com changed:

   What|Removed |Added

 AssignedTo|unassigned at gcc dot gnu   |amacleod at redhat dot com
   |dot org |
 Status|NEW |ASSIGNED
   Last reconfirmed|2006-05-02 12:26:37 |2006-05-02 15:38:29
   date||


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



[Bug tree-optimization/27381] [4.2 Regression] ice on valid code with -O

2006-05-02 Thread amacleod at redhat dot com


--- Comment #6 from amacleod at redhat dot com  2006-05-02 15:40 ---
Created an attachment (id=11361)
 -- (http://gcc.gnu.org/bugzilla/attachment.cgi?id=11361action=view)
proposed patch

This is the patch undergoing testing.


-- 


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