[llvm-dev] error:Ran out of lanemask bits to represent subregisterr

hameeza ahmed via llvm-dev llvm-dev at lists.llvm.org
Wed Jul 19 13:25:15 PDT 2017


You are right. Regarding lanes i can comment only when the other things run
fine.

Here I am stuck with unsigned vs uint64_t. it looks as if i need to replace
each occurrence of unsigned with uint64_t.
Should i do it for complete llvm folder or codegen only??

i am continuously getting such errors which require changing unsigned with
uint64_t.

What to do now???

On Thu, Jul 20, 2017 at 1:03 AM, Krzysztof Parzyszek <
kparzysz at codeaurora.org> wrote:

> It is possible that you have more than 64 lanes. In such case you would
> need to reimplement LaneBitmask with a larger underlying type. Most of the
> functionality is already localized to the header file, the only exception
> may be the "getAsInteger" function. It shouldn't be too hard to fix up the
> uses to deal with a different underlying type.
>
> -Krzysztof
>
>
> On 7/19/2017 2:56 PM, hameeza ahmed wrote:
>
>> As you mentioned i changed 32 to 64 but now some new errors come which
>> require to change unsigned to uint64_t in mentioned files. i have changed
>> in mentioned files but still errors come to change in other files..
>>
>> What to do?
>>
>> On Thu, Jul 20, 2017 at 12:08 AM, Craig Topper <craig.topper at gmail.com
>> <mailto:craig.topper at gmail.com>> wrote:
>>
>>     Did you change the hardcoded 32 right before the line that prints
>>     that error in CodeGenRegisters.cpp to 64?
>>
>>     ~Craig
>>
>>     On Wed, Jul 19, 2017 at 11:38 AM, hameeza ahmed
>>     <hahmed2305 at gmail.com <mailto:hahmed2305 at gmail.com>> wrote:
>>
>>         Thank You.
>>
>>         I have replaced all the occurrences of unsigned with uint64_t in
>>         Lanemask.h and in all other related files like
>>         codegenregisters.cpp, codegenregisters.h, MIParser.cpp etc...
>>         Also i changed Log2_32 to Log2_64 and replaced 4 with 8 in
>>           codegenregisters.cpp, but still getting the same error:
>>
>>
>>         error:Ran out of lanemask bits to represent subregister
>>         sub_32768bit_hi_then_sub_16384bit_hi_then_sub_8192bit_hi_
>> then_sub_4096bit_hi_then_sub_2048bit_hi_then_sub_32bit_hi_then
>>
>>         Now what to do?
>>
>>         Please help.
>>
>>
>>         On Wed, Jul 19, 2017 at 5:57 PM, Krzysztof Parzyszek
>>         <kparzysz at codeaurora.org <mailto:kparzysz at codeaurora.org>> wrote:
>>
>>             Hi,
>>             The LaneBitmask is implemented in
>>             include/llvm/MC/LaneBitmask.h.  You will need to change the
>>             underlying type and the associated member functions.
>>             If you have a large number of lanes, you will need to
>>             replace it with a type that can contain as many independent
>>             bits as you need (BitVector would be an ultimate solution).
>>            You may run into some problems with the uses of the member
>>             function "getAsInteger", but you can change those to
>>             something equivalent according to the type you use.
>>
>>             -Krzysztof
>>
>>
>>             On 7/19/2017 3:51 AM, hameeza ahmed wrote:
>>
>>                 Hello,
>>                 Mr. krzysztof I have seen similar question asked by you
>>                 on llvm group. Could you please help me here to address
>>                 this issue.
>>
>>                 i am trying to construct a register of size 65536 bit by
>>                 combining 2 registers of 32768 bits. both the 32768 bit
>>                 registers are different so i have to use the following
>>                 method
>>
>>                 let SubRegIndices = [sub_32768bit, sub_32768bit_hi],
>>                 CoveredBySubRegs = 1 in
>>
>>                 but i am getting following error..
>>
>>                 error:Ran out of lanemask bits to represent subregister
>>                 sub_32768bit_hi_then_sub_16384bit_hi_then_sub_8192bit_hi_
>> then_sub_4096bit_hi_then_sub_2048bit_hi_then_sub_32bit_hi_then
>>
>>                 now how to increase lanemask bits? what changes are
>>                 required??
>>
>>
>>                 Kindly help.
>>
>>
>>
>>
>>
>>             --             Qualcomm Innovation Center, Inc. is a member
>> of Code Aurora
>>             Forum, hosted by The Linux Foundation
>>
>>
>>
>>
>>
> --
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted
> by The Linux Foundation
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170720/69456b93/attachment.html>


More information about the llvm-dev mailing list