hameeza ahmed via llvm-dev
2017-Jul-19 18:38 UTC
[llvm-dev] error:Ran out of lanemask bits to represent subregisterr
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> 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 >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170719/8fd9f1d2/attachment.html>
Craig Topper via llvm-dev
2017-Jul-19 19:08 UTC
[llvm-dev] error:Ran out of lanemask bits to represent subregisterr
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> 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> 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_the >>> n_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 >> > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170719/c99b7ab7/attachment.html>
hameeza ahmed via llvm-dev
2017-Jul-19 19:56 UTC
[llvm-dev] error:Ran out of lanemask bits to represent subregisterr
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> 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> > 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> 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_the >>>> n_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 >>> >> >> >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20170720/97bec8bc/attachment.html>