This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug middle-end/18574] [4.0 Regression] bootstrap comprison failed
- From: "law at redhat dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 21 Nov 2004 06:31:57 -0000
- Subject: [Bug middle-end/18574] [4.0 Regression] bootstrap comprison failed
- References: <20041120004245.18574.hjl@lucon.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From law at redhat dot com 2004-11-21 06:31 -------
OK. I can see a way that we might be getting these comparison failures.
We're hashing on pointers, then doing table traversals. If the memory
layout changes, the ordering of objects in the hash table can change.
Changing the order of objects in the hash table changes the order in
which they are presented to the callbacks during a hash table traversal.
That in turn can change the ordering of incoming edges in newly created
blocks. That in turn can change the order of PHI arguments in those
newly created blocks.
Changing the order of arguments within the PHI nodes can change how
we coalesce during the out-of-ssa translation.
At least that's the best theory I've got. I'm testing a patch which
loses the pointer hash (we can hash on the index of the destination block).
That ought to bring stability to the hash table traversals even if the
memory map changes. It should also be slightly faster.
Of course since I haven't been able to actually reproduce the failure I
have no way of directly knowing if my theory is correct. I'll have to
rely on y'all and the autotester to tell me if things are better.
Anyway, I'm hoping to get those changes in tonight if testing can complete
before I crash for the night.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18574