[PATCH] D14719: Track pristine registers in terms of register units.

Krzysztof Parzyszek via llvm-commits llvm-commits at lists.llvm.org
Mon Nov 16 12:31:02 PST 2015


kparzysz added a comment.

Listing both, 32-bit registers and their 64-bit super-registers as callee-saved does not really solve the problem.  For example, if callee-saved = { R16, R17, http://reviews.llvm.org/D8 }, and actually-saved = { http://reviews.llvm.org/D8 }, then there are no pristine registers since R16 and R17 are both covered by http://reviews.llvm.org/D8.  The scavenger will still calculate the set-difference and come up with { R16, R17 }, and consider those to be pristine.  The "actually-saved" information is used in PEI to generate the save/restore instructions.  If that set also contained sub-registers, we would have to add checks to our Hexagon-specific hook to avoid duplicate loads/stores.  I'm not sure if all callers of "getCalleeSavedInfo" would be aware of such potential redundancy.


Repository:
  rL LLVM

http://reviews.llvm.org/D14719





More information about the llvm-commits mailing list