------- Additional Comments From pinskia at gcc dot gnu dot org  2005-07-21 
05:33 -------
Confirmed, the reduced even extra options on the mainline to disable to get the 
same tree output from 
the mainline, the ICE is not reproducible there.
Reduced testcase:
struct nand_chip {
       int           page_shift;
       int           phys_erase_shift;
};

void foo( int );

void nand_writev_ecc (struct nand_chip *this, unsigned i, unsigned count)
{
       int a = (this->phys_erase_shift - this->page_shift);
       int    ppblock = (1 << a);
       for (i = 0; i < count; i++) ;
       foo (ppblock);
}

Note on the mainline removes the loop unless you use -fno-tree-optimize.  We 
also move the 1<<a 
below the loop unless you use -fno-tree-sink on the mainline.  With those two 
options we get the same 
tree dump before expand.

To reproduce this on the 4.0 branch just use "-Os -march=k6 -mregparm=3".

-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
      Known to fail|                            |4.0.0
      Known to work|                            |3.4.0 4.1.0
   Last reconfirmed|0000-00-00 00:00:00         |2005-07-21 05:33:34
               date|                            |
            Summary|unable to find a register to|[4.0 Regression] unable to
                   |spill in class "CREG"       |find a register to spill in
                   |                            |class "CREG"
   Target Milestone|---                         |4.0.2


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

Reply via email to