[Bug c/43007] New: [4.5 Regression] No longer folds (unsigned int) ((long long unsigned int) spi_bias / 1008)
rguenth at gcc dot gnu dot org
gcc-bugzilla@gcc.gnu.org
Tue Feb 9 12:09:00 GMT 2010
The kernel on i?86 again contains references to __udivdi3 because we no longer
simplify
unsigned int apply_frontend_param (unsigned int spi_bias)
{
static const int ppm = 8000;
spi_bias /= 1000ULL + ppm/1000;
return spi_bias;
}
to return spi_bias / 1008.
In 4.4 we entered convert_to_integer with unfolded
(long long unsigned int) spi_bias / ((long long unsigned int) ((int) ppm /
1000) + 1000)
while in 4.5 we have
(long long unsigned int) spi_bias / 1008
I suppose this is a misssed-optimization fallout from the C const-expr changes.
--
Summary: [4.5 Regression] No longer folds (unsigned int) ((long
long unsigned int) spi_bias / 1008)
Product: gcc
Version: 4.5.0
Status: UNCONFIRMED
Keywords: missed-optimization
Severity: normal
Priority: P3
Component: c
AssignedTo: unassigned at gcc dot gnu dot org
ReportedBy: rguenth at gcc dot gnu dot org
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43007
More information about the Gcc-bugs
mailing list