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/52041] [4.7 Regression] Bootstrap failure at revision 183650 with --enable-checking=release


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

--- Comment #13 from Iain Sandoe <iains at gcc dot gnu.org> 2012-01-30 20:31:11 UTC ---
OK. I've been using the command lines from my build log, with modification to
the path to account for the stage2/stage3 ... so like

in stage2-gcc/
../stage1-gcc/g++ ....

in stage3-gcc/
../stage3-gcc/g++ ....

====

The problem is that there are so many differences between the files, that even
with diff or side-by-side file displays it's hard to see which differences are
significant.

When I look at the 149t.optimized tree dump, and assuming that changes in
D.xxxx and # DEBUG are not significant, I don't really see anything that looks
problematical - so either  the problem is rtl side or I need to narrow down
what I'm looking for,

====
back to the asm to try and narrow things down:

there seem to be two mis-matched cases:

1. where a var is being used in a sequence of compare & jump (I'd assume a
switch),  I the case of stage2 the asm has

   movzbl al, %eax
   cmp $xxx, %eax
   jxxxx

in the case of stage3 , the movzbl is missing.

2. an indexed lookup from gss_for_code:

  in the case of stage2 there is:

  ..set up rdx
  cltq
  movslq (%rda, %rax,4), %rdx

the (cltq) extension of reg A is missing for stage 3.

both look like sign extension-ish issues.

I think maybe will have to look at some rtl :(


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