> From: Segher Boessenkool <seg...@kernel.crashing.org>
>  Sent: Thursday, June 6, 2019 6:49 PM
>  To: Richard Earnshaw (lists)
>  Cc: Fredrik Hederstierna; Jeff Law; gcc@gcc.gnu.org
>  Subject: Re: ARM peephole2 from 2003 never merged, still valid 
>    
>  
> On Thu, Jun 06, 2019 at 05:06:35PM +0100, Richard Earnshaw (lists) wrote:
>  > The reason combine doesn't catch this is because at the time it runs the
>  > MOV is in a different basic block.  Later on it is sunk into the same
>  > basic block, but it's then too late to do the merge.
>  
>  Or you could say the MOV didn't even exist yet: the insn that is merged
>  by the peephole is created by the prologue code, eventually.
>  
>  This isn't really a target problem, it is very much generic, but I don't
>  see a better solution than a peephole either.
>
>  Segher
 
So what is the conclusion, should be re-open PR-9663 and try to fix the missing 
peephole?
I think there will always be cases where the code generated target specific 
register optimizations are possible, that not necessarily have any direct 
connection of the actual basic blocks but more by chance which instructions are 
finally generated after each other, where maybe eg peephole-alike optimizers 
are the only solution to do the job?
/Fredrik

Reply via email to