------- 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