fhahn wrote:

@kparzysz please take a loo at 
https://gist.github.com/fhahn/67937125b64440a8a414909c4a1b7973, which has much 
more limited impact. 

> I haven't looked at the updated testcases in detail, but I see that most of 
> the changes are in treating LR as live (whereas it was dead before). At the 
> first glance that doesn't look right.

We might now overestimate liveness, which only results in missed perf correct? 
Although I think this is mostly theoretical at this point, as there's no test 
cases that show that. The issue is that underestimating as we currently do 
leads to incorrect results, in particular with tail calls that use LR 
implicitly. If LR isn't marked as live in that case, other passes are free to 
clobber LR (e.g. the machine-outliner by introducing calls using BL, as in 
https://github.com/llvm/llvm-project/blob/20f634f275b431ff256ba45cbcbb6dc5bd945fb3/llvm/test/CodeGen/Thumb2/outlined-fn-may-clobber-lr-in-caller.ll

https://github.com/llvm/llvm-project/pull/73553
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to