[PATCH] D36160: Liveness issues in tail merging, and the ARM::LR saved-but-not-restored

Krzysztof Parzyszek via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Aug 2 05:53:36 PDT 2017


kparzysz added a comment.

In https://reviews.llvm.org/D36160#828176, @efriedma wrote:

> The point I was trying to make is that we should always exclude LR from the set of registers added by addLiveOutsNoPristines: whether or not we actually convert the "bx lr" into a "pop", it isn't live out of the function, and we don't need to model it that way.  So assignCalleeSavedSpillSlots wouldn't need any special logic to figure that out.


Ah, I see.  However, if we want to support multiple save/restore points with different sets of registers, this patch may not help.  If we kept track of what registers were saved/restored in which block, it would make things a lot easier.


Repository:
  rL LLVM

https://reviews.llvm.org/D36160





More information about the llvm-commits mailing list