This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/33992] [4.3 Regression] profiledbootstrap is broken
- From: "rguenth at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 6 Feb 2008 11:19:56 -0000
- Subject: [Bug bootstrap/33992] [4.3 Regression] profiledbootstrap is broken
- References: <bug-33992-13189@http.gcc.gnu.org/bugzilla/>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Comment #16 from rguenth at gcc dot gnu dot org 2008-02-06 11:19 -------
Just re-building real.o with removing the real.gc* files before fixes the bug,
so to trigger this bug you indeed need the profile-feedback.
-O2 -fbranch-probabilities -finline-functions is enough to trigger the failure,
-fno-tree-vrp -fno-tree-dominator-opts (that is, disabling jump threading)
fixes
it.
It looks like rtd_divmod goes wrong, as it returns 141 for
(gdb) print *num
$90 = {cl = 1, decimal = 0, sign = 0, signalling = 0, canonical = 0,
uexp = 1024, sig = {0, 0, 18446744073709549568}}
(gdb) print *den
$91 = {cl = 1, decimal = 0, sign = 0, signalling = 0, canonical = 0,
uexp = 1017, sig = {3455452434845676643, 2207960133917416517,
16708042751414900190}}
called from
/* At this point, PTEN should contain the nearest power of 10 smaller
than R, such that this division produces the first digit.
Using a divide-step primitive that returns the complete integral
remainder avoids the rounding error that would be produced if
we were to use do_divide here and then simply multiply by 10 for
each subsequent digit. */
digit = rtd_divmod (&r, &pten);
though pten also looks funny here.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33992