[llvm-dev] preserve registers across function call
Xiaochu Liu via llvm-dev
llvm-dev at lists.llvm.org
Wed Aug 26 18:51:56 PDT 2015
Thanks for your reply. I will try to pass down the mask!
I have one more question. In my backend I return CSR_RegMask in
getCallPreservedMask and return CSR_SaveList in getCalleeSavedRegs. Is that
a correct setup? I dumped the regmask and found that callee saved regs are
marked 1 and non-callee saved regs are 0.
On Wed, Aug 26, 2015 at 5:58 PM Marcello Maggioni <mmaggioni at apple.com>
> Is the preserved mask passed down to your Call instruction in LowerCall ?
> On 26 Aug 2015, at 17:52, Xiaochu Liu via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
> Dear there,
> I was wondering how to preserve registers (caller saved) across calls. I
> implemented getCalleeSavedRegs and getCallPreservedMask. But the
> non-callee-saved registers are still not saved by caller. I want to spill
> these registers in use on stack right before the call. From my
> understanding, the register allocator in llvm will do the spill and
> restoring automatically? Is there anything I was supposed to do to make it
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the llvm-dev