This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug bootstrap/33992] [4.3 Regression] profiledbootstrap is broken



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]