[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