This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug bootstrap/52041] [4.7 Regression] Bootstrap failure at revision 183650 with --enable-checking=release
- From: "iains at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Mon, 30 Jan 2012 20:31:11 +0000
- Subject: [Bug bootstrap/52041] [4.7 Regression] Bootstrap failure at revision 183650 with --enable-checking=release
- Auto-submitted: auto-generated
- References: <bug-52041-4@http.gcc.gnu.org/bugzilla/>
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 :(