Postpone expanding va_arg until pass_stdarg
Tom de Vries
Tom_deVries@mentor.com
Wed Feb 11 18:19:00 GMT 2015
On 10-02-15 14:46, Richard Biener wrote:
>> This patch is a way to achieve that gimplification doesn't call the actual
>> >gimplify_expr langhook, and it fixes the failure. But I'm guessing that's
>> >not the proper way to fix this.
> More like
>
> Index: gcc/tree.c
> ===================================================================
> --- gcc/tree.c (revision 220578)
> +++ gcc/tree.c (working copy)
> @@ -5815,6 +5815,7 @@ free_lang_data (void)
> still be used indirectly via the get_alias_set langhook. */
> lang_hooks.dwarf_name = lhd_dwarf_name;
> lang_hooks.decl_printable_name = gimple_decl_printable_name;
> + lang_hooks.gimplify_expr = lhd_gimplify_expr;
> /* We do not want the default decl_assembler_name implementation,
> rather if we have fixed everything we want a wrapper around it
> asserting that all non-local symbols already got their assembler
>
That worked, and allowed me to do a bootstrap on x86_64 for all languages and
regtest for unix/ and unix/-m32 without any issues (other than scan-dump-tree
failures for stdarg, since the va_list_gpr/fpr_size optimization is switched off).
That leaves just teaching the va_list_gpr/fpr_size optimization to recognize
ifn_va_arg.
Thanks,
- Tom
More information about the Gcc
mailing list