On Mon, Nov 14, 2016 at 11:09:19AM +0100, Richard Biener wrote:
> On Sat, Nov 12, 2016 at 9:31 AM, Segher Boessenkool
> <seg...@kernel.crashing.org> wrote:
> > So far all target implementations of the separate shrink-wrapping hooks
> > use the DF LIVE info to figure out around which basic blocks the non-
> > volatile registers need to be saved.  This is done by looking at the
> > IN+GEN+KILL sets of the basic blocks.  However, that doesn't work for
> > registers that DF says are defined in the entry block, or used in the
> > exit block.
> >
> > This patch introduces a shrink_wrap_separate_in_progress variable, and
> > makes df_get_entry_block_def_set and df_get_exit_block_use_set set the
> > respective sets to empty if that variable is set to true.  It also
> > changes the rs6000 port to use IN+GEN+KILL for the LR component.

> Globals like this are somewhat gross.

This code already uses epilogue_completed and reload_completed for
similar purposes ;-)

> There are df_changeable_flags
> where we seem to have a "related" flag DF_RD_PRUNE_DEAD_DEFS
> so you could add a flag for this.  There's also local_flags (only used
> by df_chain_add_problem).

That does sound a bit nicer, I'll try that.  Thanks for the hint,


Segher

Reply via email to