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