This is the mail archive of the
mailing list for the GCC project.
Re: Don't run DSE at -Og
- From: Jeff Law <law at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org, richard dot sandiford at arm dot com
- Date: Sun, 7 Jul 2019 13:04:18 -0600
- Subject: Re: Don't run DSE at -Og
- References: <email@example.com>
On 7/7/19 3:43 AM, Richard Sandiford wrote:
> This patch stops gimple and rtl DSE from running by default at -Og.
> The idea is both to improve compile time and to stop us from deleting
> stores that we can't track in debug info.
> We could rein this back in future for stores to local variables
> with is_gimple_reg_type, but at the moment we don't have any
> infrastructure for switching between binds to specific values
> and binds to evolving memory locations. Even then, location
> tracking only works for direct references to the variables, and doesn't
> for example help with printing dereferenced pointers (see the next patch
> in the series for an example).
> I'm also not sure that DSE is important enough for -Og to justify the
> compile time cost -- especially in the case of RTL DSE, which is pretty
> Tested on aarch64-linux-gnu and x86_64-linux-gnu. OK to install?
> 2019-07-07 Richard Sandiford <firstname.lastname@example.org>
> * common.opt (Og): Change the initial value of flag_dse to 0.
> * opts.c (default_options_table): Move OPT_ftree_dse from
> OPT_LEVELS_1_PLUS to OPT_LEVELS_1_PLUS_NOT_DEBUG. Also add
> OPT_fdse to OPT_LEVELS_1_PLUS_NOT_DEBUG. Put the OPT_ftree_pta
> entry before the OPT_ftree_sra entry.
> * doc/invoke.texi (Og): Add -fdse and -ftree-dse to the list
> of flags disabled by Og.
> * c-c++-common/guality/Og-global-dse-1.c: New test.
OK. I doubt DSE is at all important if someone has asked for Og.
BTW, if you're going to be poking at improving Og or debuginfo in
general, you might want to loop Alex into your plans. He did a detailed
evaluation of how the various options impact debugging, -Og issues, etc.
He's no longer with Red Hat, but can be reached at Adacore.