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: "shebs at apple dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 22 Nov 2004 00:24:58 -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 shebs at apple dot com 2004-11-22 00:24 -------
Subject: Re: [4.0 Regression] bootstrap comprison failed
Jeffrey A Law wrote:
>I've been unable to reproduce the comparison failures. However, as I
>outlined in an earlier message, I have come up with a scenario in which
>my patch might cause a comparison failure.
>
>
This fixes bootstrap compare failures on Darwin, thank you saving
me from the horrible debugging hell I was dreading when I saw
miscompares last night... :-)
Stan
>This patch changes the hashing routine to use block indices rather
>than hash on pointers. That ought to stabilize the hash (and thus the
>hash table traversals and SSA_NAME coalescing) in cases where it
>was unstable before.
>
>Since I've been unable to trigger the failure here, I can't say for
>certain whether or not this patch fixes the bootstrap failures others
>have seen.
>
>FWIW, this has been bootstrapped and regression tested on
>i686-pc-linux-gnu.
>
>
>
>
>------------------------------------------------------------------------
>
> * tree-ssa-threadupdate.c (redirection_data_hash): Use the
> index of the destination block for the hash value rather than
> hashing a pointer.
>
>Index: tree-ssa-threadupdate.c
>===================================================================
>RCS file: /cvs/gcc/gcc/gcc/tree-ssa-threadupdate.c,v
>retrieving revision 2.15
>diff -c -p -r2.15 tree-ssa-threadupdate.c
>*** tree-ssa-threadupdate.c 20 Nov 2004 12:48:13 -0000 2.15
>--- tree-ssa-threadupdate.c 21 Nov 2004 15:00:33 -0000
>*************** static hashval_t
>*** 203,209 ****
> redirection_data_hash (const void *p)
> {
> edge e = ((struct redirection_data *)p)->outgoing_edge;
>! return htab_hash_pointer (e);
> }
>
> static int
>--- 203,209 ----
> redirection_data_hash (const void *p)
> {
> edge e = ((struct redirection_data *)p)->outgoing_edge;
>! return e->dest->index;
> }
>
> static int
>
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18574