search for: getcallpreservedmask

Displaying 20 results from an estimated 40 matches for "getcallpreservedmask".

2014 Mar 13
3
[LLVMdev] Possible bug in getCallPreservedMask for CallingConv::Intel_OCL_BI
Not sure who owns this bit of code, so sending this to the general list. It looks like there may be an unintentional fall through happening in the X86RegisterInfo::getCallPreservedMask function. http://llvm.org/docs/doxygen/html/X86RegisterInfo_8cpp_source.html case CallingConv::Intel_OCL_BI <http://llvm.org/docs/doxygen/html/namespacellvm_1_1CallingConv.html#a4f861731fc6dbfdccc05af5968d98974ad47327c131a0990283111588b89587cb>: { if (IsWin64 && HasAVX512)...
2015 Aug 27
2
preserve registers across function call
Hi Marcello, 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. Thanks, Xiaochu On Wed, Aug 26, 2015 at 5:58 PM Marcello Maggioni <mmaggioni at apple.com> wrote: > Is the preser...
2016 May 18
2
[GSoC 2016] Interprocedural Register Allocation - Introduction and Feedback
...target based on the calling > convention. The PowerPC backend, for example, looks like this: > > // Add a register mask operand representing the call-preserved registers. > const TargetRegisterInfo *TRI = Subtarget.getRegisterInfo(); > const uint32_t *Mask = > TRI->getCallPreservedMask(DAG.getMachineFunction(), CallConv); > assert(Mask && "Missing call preserved mask for calling convention"); > Ops.push_back(DAG.getRegisterMask(Mask)); > > but it can be more complicated. If you look for uses of 'getRegisterMask' > in Target/*/*ISelLowe...
2016 May 18
2
[GSoC 2016] Interprocedural Register Allocation - Introduction and Feedback
...> convention. The PowerPC backend, for example, looks like this: >> >> // Add a register mask operand representing the call-preserved >> registers. >> const TargetRegisterInfo *TRI = Subtarget.getRegisterInfo(); >> const uint32_t *Mask = >> TRI->getCallPreservedMask(DAG.getMachineFunction(), CallConv); >> assert(Mask && "Missing call preserved mask for calling convention"); >> Ops.push_back(DAG.getRegisterMask(Mask)); >> >> but it can be more complicated. If you look for uses of 'getRegisterMask' >> i...
2015 Aug 27
2
preserve registers across function call
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 happen? T...
2016 May 18
0
[GSoC 2016] Interprocedural Register Allocation - Introduction and Feedback
...the calling convention. The PowerPC backend, for example, looks like this: >> >> // Add a register mask operand representing the call-preserved registers. >> const TargetRegisterInfo *TRI = Subtarget.getRegisterInfo(); >> const uint32_t *Mask = >> TRI->getCallPreservedMask(DAG.getMachineFunction(), CallConv); >> assert(Mask && "Missing call preserved mask for calling convention"); >> Ops.push_back(DAG.getRegisterMask(Mask)); >> >> but it can be more complicated. If you look for uses of 'getRegisterMask' in Target...
2016 May 24
2
[GSoC 2016] Interprocedural Register Allocation - Introduction and Feedback
...erPC backend, for example, looks like this: >>> >>> // Add a register mask operand representing the call-preserved >>> registers. >>> const TargetRegisterInfo *TRI = Subtarget.getRegisterInfo(); >>> const uint32_t *Mask = >>> TRI->getCallPreservedMask(DAG.getMachineFunction(), CallConv); >>> assert(Mask && "Missing call preserved mask for calling convention"); >>> Ops.push_back(DAG.getRegisterMask(Mask)); >>> >>> but it can be more complicated. If you look for uses of >>> 'ge...
2016 May 24
0
[GSoC 2016] Interprocedural Register Allocation - Introduction and Feedback
...> > > > Subtarget.getRegisterInfo(); > > > > > > > > > > > > > > > > > > > > > const uint32_t *Mask = > > > > > > > > > > > > > > > > > > > > > TRI->getCallPreservedMask(DAG.getMachineFunction(), > > > > > > CallConv); > > > > > > > > > > > > > > > > > > > > > assert(Mask && "Missing call preserved mask for calling > > > > > > convention"); >...
2016 May 25
2
[GSoC 2016] Interprocedural Register Allocation - Introduction and Feedback
...e, looks like this: >>>> >>>> // Add a register mask operand representing the call-preserved >>>> registers. >>>> const TargetRegisterInfo *TRI = Subtarget.getRegisterInfo(); >>>> const uint32_t *Mask = >>>> TRI->getCallPreservedMask(DAG.getMachineFunction(), CallConv); >>>> assert(Mask && "Missing call preserved mask for calling convention"); >>>> Ops.push_back(DAG.getRegisterMask(Mask)); >>>> >>>> but it can be more complicated. If you look for uses of >...
2016 May 11
2
[GSoC 2016] Interprocedural Register Allocation - Introduction and Feedback
...d by target based on the calling convention. The PowerPC backend, for example, looks like this: > > // Add a register mask operand representing the call-preserved registers. > const TargetRegisterInfo *TRI = Subtarget.getRegisterInfo(); > const uint32_t *Mask = > TRI->getCallPreservedMask(DAG.getMachineFunction(), CallConv); > assert(Mask && "Missing call preserved mask for calling convention"); > Ops.push_back(DAG.getRegisterMask(Mask)); > > but it can be more complicated. If you look for uses of 'getRegisterMask' in Target/*/*ISelLowering...
2016 May 11
3
[GSoC 2016] Interprocedural Register Allocation - Introduction and Feedback
...d by target based on the calling convention. The PowerPC backend, for example, looks like this: > > // Add a register mask operand representing the call-preserved registers. > const TargetRegisterInfo *TRI = Subtarget.getRegisterInfo(); > const uint32_t *Mask = > TRI->getCallPreservedMask(DAG.getMachineFunction(), CallConv); > assert(Mask && "Missing call preserved mask for calling convention"); > Ops.push_back(DAG.getRegisterMask(Mask)); > > but it can be more complicated. If you look for uses of 'getRegisterMask' in Target/*/*ISelLowering...
2016 May 25
0
[GSoC 2016] Interprocedural Register Allocation - Introduction and Feedback
...t; > > > > > > > > > > > > > > > const uint32_t *Mask = > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > TRI->getCallPreservedMask(DAG.getMachineFunction(), > > > > > > > > CallConv); > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > assert(Mask && "Missin...
2016 May 11
3
[GSoC 2016] Interprocedural Register Allocation - Introduction and Feedback
*Vivek Pandya* On Wed, May 11, 2016 at 10:02 AM, vivek pandya <vivekvpandya at gmail.com> wrote: > > > *Vivek Pandya* > > > On Wed, May 11, 2016 at 9:43 AM, Mehdi Amini <mehdi.amini at apple.com> > wrote: > >> >> On May 10, 2016, at 6:06 PM, Hal Finkel <hfinkel at anl.gov> wrote: >> >> >> >>
2016 May 11
2
[GSoC 2016] Interprocedural Register Allocation - Introduction and Feedback
...; > > > > > > > > > const TargetRegisterInfo *TRI = Subtarget.getRegisterInfo(); > > > > > > > > > > > > > > > const uint32_t *Mask = > > > > > > > > > > > > > > > TRI->getCallPreservedMask(DAG.getMachineFunction(), > > > > > CallConv); > > > > > > > > > > > > > > > assert(Mask && "Missing call preserved mask for calling > > > > > convention"); > > > > > > > > &gt...
2016 May 25
2
[GSoC 2016] Interprocedural Register Allocation - Introduction and Feedback
...>>>> >>>>> // Add a register mask operand representing the call-preserved >>>>> registers. >>>>> const TargetRegisterInfo *TRI = Subtarget.getRegisterInfo(); >>>>> const uint32_t *Mask = >>>>> TRI->getCallPreservedMask(DAG.getMachineFunction(), CallConv); >>>>> assert(Mask && "Missing call preserved mask for calling >>>>> convention"); >>>>> Ops.push_back(DAG.getRegisterMask(Mask)); >>>>> >>>>> but it can be more comp...
2016 May 25
0
[GSoC 2016] Interprocedural Register Allocation - Introduction and Feedback
...;>>>>> // Add a register mask operand representing the call-preserved >>>>>> registers. >>>>>> const TargetRegisterInfo *TRI = Subtarget.getRegisterInfo(); >>>>>> const uint32_t *Mask = >>>>>> TRI->getCallPreservedMask(DAG.getMachineFunction(), CallConv); >>>>>> assert(Mask && "Missing call preserved mask for calling >>>>>> convention"); >>>>>> Ops.push_back(DAG.getRegisterMask(Mask)); >>>>>> >>>>>> but...
2016 May 25
2
[GSoC 2016] Interprocedural Register Allocation - Introduction and Feedback
...d by target based on the calling convention. The PowerPC backend, for example, looks like this: > > // Add a register mask operand representing the call-preserved registers. > const TargetRegisterInfo *TRI = Subtarget.getRegisterInfo(); > const uint32_t *Mask = > TRI->getCallPreservedMask(DAG.getMachineFunction(), CallConv); > assert(Mask && "Missing call preserved mask for calling convention"); > Ops.push_back(DAG.getRegisterMask(Mask)); > > but it can be more complicated. If you look for uses of 'getRegisterMask' in Target/*/*ISelLowering...
2016 May 25
3
[GSoC 2016] Interprocedural Register Allocation - Introduction and Feedback
...the calling convention. The PowerPC backend, for example, looks like this: >> >> // Add a register mask operand representing the call-preserved registers. >> const TargetRegisterInfo *TRI = Subtarget.getRegisterInfo(); >> const uint32_t *Mask = >> TRI->getCallPreservedMask(DAG.getMachineFunction(), CallConv); >> assert(Mask && "Missing call preserved mask for calling convention"); >> Ops.push_back(DAG.getRegisterMask(Mask)); >> >> but it can be more complicated. If you look for uses of 'getRegisterMask' in Target...
2016 May 25
0
[GSoC 2016] Interprocedural Register Allocation - Introduction and Feedback
...;> // Add a register mask operand representing the call-preserved >>>>>>> registers. >>>>>>> const TargetRegisterInfo *TRI = Subtarget.getRegisterInfo(); >>>>>>> const uint32_t *Mask = >>>>>>> TRI->getCallPreservedMask(DAG.getMachineFunction(), CallConv); >>>>>>> assert(Mask && "Missing call preserved mask for calling >>>>>>> convention"); >>>>>>> Ops.push_back(DAG.getRegisterMask(Mask)); >>>>>>> >>>...
2016 May 25
2
[GSoC 2016] Interprocedural Register Allocation - Introduction and Feedback
...gister mask operand representing the call-preserved registers. >>>>>>>>>>> const TargetRegisterInfo *TRI = Subtarget.getRegisterInfo(); >>>>>>>>>>> const uint32_t *Mask = >>>>>>>>>>> TRI->getCallPreservedMask(DAG.getMachineFunction(), CallConv); >>>>>>>>>>> assert(Mask && "Missing call preserved mask for calling convention"); >>>>>>>>>>> Ops.push_back(DAG.getRegisterMask(Mask)); >>>>>>>>>&g...