On Tue, Nov 25, 2014 at 11:46:52AM -0700, Jeff Law wrote:
> On 11/14/14 12:19, Segher Boessenkool wrote:
> >With this new field in place, we can have LOG_LINKS for insns that set
> >more than one register and distribute them properly in distribute_links.
> >This then allows many more PARALLELs to be combined.
> >
> >Also split off new functions can_combine_{def,use}_p from the
> >create_log_links function.
> >
> >
> >2014-11-14  Segher Boessenkool  <seg...@kernel.crashing.org>
> >
> >gcc/
> >     * combine.c (struct insn_link): New field `regno'.
> >     (alloc_insn_link): New parameter `regno'.  Use it.
> >     (find_single_use): Check the new field.
> >     (can_combine_def_p, can_combine_use_p): New functions.  Split
> >     off from ...
> >     (create_log_links): ... here.  Correct data type of `regno'.
> >     Adjust call to alloc_insn_link.
> >     (adjust_for_new_dest): Find regno, use it in call to
> >     alloc_insn_link.
> >     (try_combine): Adjust call to alloc_insn_link.
> >     (distribute_links): Check the new field.

> Didn't you lose the check that avoids duplicated LOG_LINKs?

I don't think so; if I did, that's a bug.

> Or is the 
> claim that the check is no longer needed because there are no duplicates 
> now that we include the register associated with the link?

Are you talking about create_log_links?  There can be no duplicates there
(anymore), that would be multiple defs of the same reg in the same insn,
indeed.

I did check all the places that look at links, and adjusted everything
that needed adjusting.  Could have missed something of course...


Segher

Reply via email to