Davis, Alan via llvm-dev
2017-Apr-07 16:02 UTC
[llvm-dev] callee-save for register aliases
We have vector registers and scalar registers that alias their low bits. That is
def ScalarSRI : SubRegIndex<32>
def Scalar<n> : Register<n>
def Vector<n, s> : Register<n> { let SubRegs = [s]; let
SubRegIndices = ScalarSRI; }
If a function only defs the scalar part of a callee-saved vector register, the
other bits are not affected and it would be desirable not to save and restore
them. But determineCalleeSaves() uses isPhysRegModified(), which returns true
if that register or any of its aliases are defed.
Is there a way around this?
-Alan
-------------- next part --------------
An HTML attachment was scrubbed...
URL:
<http://lists.llvm.org/pipermail/llvm-dev/attachments/20170407/0be5be16/attachment.html>