This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH][LTO] Restore i?86
- From: Richard Guenther <rguenther at suse dot de>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Diego Novillo <dnovillo at google dot com>
- Date: Tue, 8 Sep 2009 17:10:15 +0200 (CEST)
- Subject: Re: [PATCH][LTO] Restore i?86
- References: <alpine.LNX.2.00.0909081350040.28140@zhemvz.fhfr.qr>
On Tue, 8 Sep 2009, Richard Guenther wrote:
>
> i?86 is in a sorry state after the merge (everything with valists
> ICEs, likewise a lot of other stuff).
>
> There seem to be some hunks gone with the re-merge of fld, notably
>
> 1) not freeing the variant chains, especially with 3) this is bogus
>
> 2) not re-setting char_type_node. This causes ices in tree-stdarg.c
> on i?86
>
> 3) re-running fld in lto1. This seems to confuse us as we enter
> lang_hooks.get_alias_set with types not yet properly merged (and thus
> we get into the usual endless recursion with get_alias_set).
>
> I'm bootstrapping and testing these changes, 1) should go to trunk as
> well, 2) is probably exactly causing the issue on trunk so we need to
> think of a different fix.
I'm testing the following variant for 2) instead which seems to make
both trunk and the branch happy.
Richard.
*************** free_lang_data (void)
*** 4869,4874 ****
--- 4859,4870 ----
boolean_true_node = TYPE_MAX_VALUE (boolean_type_node);
}
+ /* Unify char_type_node with its properly signed variant. */
+ if (TYPE_UNSIGNED (char_type_node))
+ unsigned_char_type_node = char_type_node;
+ else
+ signed_char_type_node = char_type_node;
+
/* Reset some langhooks. */
lang_hooks.callgraph.analyze_expr = NULL;
lang_hooks.types_compatible_p = NULL;