Backward insn combination?
Richard Earnshaw
rearnsha@arm.com
Wed Jun 30 06:04:00 GMT 1999
> In message < 199906301104.MAA22454@sun52.NIS.cambridge >you write:
> >
> > law@cygnus.com said:
> > > What you may need is multiple iterations of the combiner at higher
> > > optimization levels. Though I have no idea how safe that would be and
> > > how many new combinations later passes would find. Probably worth some
> > > experiments.
> >
> >
> > Rather than doing multiple passes, each time you do make a successful
> > combination you could restart at the insn after the one deleted (or when
> > three are combined after the earliest insn deleted).
> That does not work in the case Michael is talking about. For his case to
> work you have to back up to an unknown point *before* the insn you delete.
>
> A
> B
> C
> D
>
> Assume we can't combine A & C because of B. But we can combine B & D and
> delete B. To then be able to combine A & C you have to restart at A, not
> after B.
>
>
> jeff
>
>
But the LOG_LINKS on C point back to A, which is how the code in
combine_instructions works. So by combining B and D and restarting after
where B was we find C which points us back to A.
More information about the Gcc
mailing list