[PATCH] D31123: RegisterPressure: Add operators to RegisterMaskPair

Daniel Berlin via llvm-commits llvm-commits at lists.llvm.org
Sun Mar 19 15:10:25 PDT 2017


This code has a number of issues (using copying all over the place) that is
likely causing your issue.
For example:
// Idem for a list of Reg/Mask
  SmallVector<RegisterMaskPair, 8> getPairsForRegs(
    const SmallVector<RegisterMaskPair, 8> Regs);


You almost certainly meant this to be a const reference to Regs.
etc

Actually, staring at/ this harder, that function is just equivalent to
std::copy, no?

I tried to patch it into a client, but it does not patch cleanly.
If you rebase it, i'll take a closer look.


On Sun, Mar 19, 2017 at 2:22 PM, Axel Davy <axel.davy at ens.fr> wrote:

> Here is the code that makes use of this:
>
> https://reviews.llvm.org/D31124
>
> Axel
>
>
> On 19/03/2017 22:16, Daniel Berlin wrote:
>
> Can you give the actual code you are trying to use?
> It should work fine in, say, densemap, if you define the densemapinfo for
> it.
>
> Past that, without seeing exactly how you are trying to use it, it is hard
> to say what the problem is.
>
> I would venture a guess if you are doing it in a way that it is trying to
> default construct these, you are probably not doing it right :)
>
>
> On Sun, Mar 19, 2017 at 12:44 PM, Axel Davy via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>> This is similar to just allocating the structure.
>>
>> Somehow to use maps, it complained without this constructor.
>> I don't think however any possible initialization value would make sense.
>>
>> Perhaps UINT_MAX for Reg and 0 for LaneMask ? To clearly indicate there
>> is error
>> if you see these in logs ?
>>
>> Axel
>>
>>
>> On 19/03/2017 20:23, Stanislav Mekhanoshin via Phabricator wrote:
>>
>>> rampitec added inline comments.
>>>
>>>
>>> ================
>>> Comment at: include/llvm/CodeGen/RegisterPressure.h:45
>>> +
>>> +  RegisterMaskPair() {}
>>> +
>>> ----------------
>>> That is undesirable to have a constructor which does not initialize
>>> fields.
>>>
>>>
>>> Repository:
>>>    rL LLVM
>>>
>>> https://reviews.llvm.org/D31123
>>>
>>>
>>>
>>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20170319/439a6ed8/attachment.html>


More information about the llvm-commits mailing list