[llvm-dev] Updating RegMask inline

vivek pandya via llvm-dev llvm-dev at lists.llvm.org
Fri May 27 19:00:08 PDT 2016


On Sat, May 28, 2016 at 7:28 AM, Mehdi Amini <mehdi.amini at apple.com> wrote:

>
>
> Sent from my iPhone
>
> On May 27, 2016, at 6:55 PM, vivek pandya <vivekvpandya at gmail.com> wrote:
>
>
>
> On Sat, May 28, 2016 at 12:23 AM, vivek pandya <vivekvpandya at gmail.com>
> wrote:
>
>>
>>
>> On Sat, May 28, 2016 at 12:21 AM, Mehdi Amini <mehdi.amini at apple.com>
>> wrote:
>>
>>>
>>> > On May 27, 2016, at 11:49 AM, vivek pandya <vivekvpandya at gmail.com>
>>> wrote:
>>> >
>>> > Hello Mentors,
>>> >
>>> > I have completed writing simple register mask calculator pass, an
>>> immutable pass that stores RegMasks and provides API to query them, and a
>>> target specific pass for X86 target which currently iterates through all MI
>>> in given MF and if a call instruction is found then it quires for RegMask
>>> to Immutable pass and prints which registers are clobbered and preserved as
>>> per actual register allocation for callee function.
>>> >
>>> > So now I need to update RegMask for call instruction, so as per our
>>> previous discussion on IRC if we add a method to update RegMask, Do we have
>>> to do it in target specific way? Is it possible to have RegMask at fixed
>>> position in Operands array in MI? Also provide some more details on
>>> updating cached RegMask in various other class.
>>>
>>> Add a method "setOperandMask()" in class MachineOperand, and then when
>>> you find a call you just walk all the operands till you find one which
>>> "isRegMask()" at which point you can update it.
>>>
>>> Ok.
>>
>
> Is it ok to add "setRegMaskOperand()" in class MI and looping through
> operands to find RegMask is also included in method ?
>
>
> With this behavior I'd expect the method to be named updateRegMask...
> Also, what is the semantic if there is no regmask?
>
Assertion "trying to update RegMask when not present" ?
Vivek

>
> --
> Mehdi
>
>
> -Vivek
>
>
>
>> -Vivek
>>
>>> --
>>> Mehdi
>>>
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160528/857f677d/attachment.html>


More information about the llvm-dev mailing list