Evan Cheng
2009-Dec-09 01:34 UTC
[LLVMdev] [PATCH] increase the max number of physical registers
On Dec 8, 2009, at 3:31 PM, Jakob Stoklund Olesen wrote:> > On Dec 8, 2009, at 11:33 AM, Evan Cheng wrote: > >> This caused a massive slow down to post-ra scheduler (llc -O3 on x86, -O2 on ARM). I'm going to revert it for now until it has been addressed. > > Probably caused by this member: > > /// KillIndices - The index of the most recent kill (proceding bottom-up), > /// or ~0u if the register is not live. > unsigned KillIndices[TargetRegisterInfo::FirstVirtualRegister]; > > And this: > > std::fill(KillIndices, array_endof(KillIndices), ~0u); > > It should probably be dynamically allocated with TRI->getNumRegs() members instead.Yep. David Goodwin is going to fix it. Evan> > /jakob >
David Goodwin
2009-Dec-09 01:35 UTC
[LLVMdev] [PATCH] increase the max number of physical registers
I have the fix ready, and I'll check it in tomorrow morning. David On Dec 8, 2009, at 5:34 PM, Evan Cheng wrote:> > On Dec 8, 2009, at 3:31 PM, Jakob Stoklund Olesen wrote: > >> >> On Dec 8, 2009, at 11:33 AM, Evan Cheng wrote: >> >>> This caused a massive slow down to post-ra scheduler (llc -O3 on x86, -O2 on ARM). I'm going to revert it for now until it has been addressed. >> >> Probably caused by this member: >> >> /// KillIndices - The index of the most recent kill (proceding bottom-up), >> /// or ~0u if the register is not live. >> unsigned KillIndices[TargetRegisterInfo::FirstVirtualRegister]; >> >> And this: >> >> std::fill(KillIndices, array_endof(KillIndices), ~0u); >> >> It should probably be dynamically allocated with TRI->getNumRegs() members instead. > > Yep. David Goodwin is going to fix it. > > Evan > >> >> /jakob >> >
David Goodwin
2009-Dec-09 19:40 UTC
[LLVMdev] [PATCH] increase the max number of physical registers
Sending lib/CodeGen/AggressiveAntiDepBreaker.cpp Sending lib/CodeGen/AggressiveAntiDepBreaker.h Sending lib/CodeGen/CriticalAntiDepBreaker.cpp Sending lib/CodeGen/PostRASchedulerList.cpp Transmitting file data .... Committed revision 90970. On Dec 8, 2009, at 5:34 PM, Evan Cheng wrote:> > On Dec 8, 2009, at 3:31 PM, Jakob Stoklund Olesen wrote: > >> >> On Dec 8, 2009, at 11:33 AM, Evan Cheng wrote: >> >>> This caused a massive slow down to post-ra scheduler (llc -O3 on x86, -O2 on ARM). I'm going to revert it for now until it has been addressed. >> >> Probably caused by this member: >> >> /// KillIndices - The index of the most recent kill (proceding bottom-up), >> /// or ~0u if the register is not live. >> unsigned KillIndices[TargetRegisterInfo::FirstVirtualRegister]; >> >> And this: >> >> std::fill(KillIndices, array_endof(KillIndices), ~0u); >> >> It should probably be dynamically allocated with TRI->getNumRegs() members instead. > > Yep. David Goodwin is going to fix it. > > Evan > >> >> /jakob >> >
Pekka Jääskeläinen
2010-Jul-06 10:26 UTC
[LLVMdev] [PATCH] increase the max number of physical registers
Hello, This patch was reverted and the revert was forgotten to be undone after the performance regression it introduced was fixed. Can someone please revert it back (i.e. increase the max physreg size to 16K or even better to 32K) to enable us to experiment with large register number machines again? :) It was this trivial patch: Index: include/llvm/Target/TargetRegisterInfo.h ==================================================================--- include/llvm/Target/TargetRegisterInfo.h (revision 89468) +++ include/llvm/Target/TargetRegisterInfo.h (working copy) @@ -299,8 +299,8 @@ /// FirstVirtualRegister - This is the first register number that is /// considered to be a 'virtual' register, which is part of the SSA /// namespace. This must be the same for all targets, which means that each - /// target is limited to 1024 registers. - FirstVirtualRegister = 1024 + /// target is limited to this fixed number of registers. + FirstVirtualRegister = 16384 }; /// isPhysicalRegister - Return true if the specified register number is in On 12/09/2009 03:34 AM, Evan Cheng wrote:> On Dec 8, 2009, at 3:31 PM, Jakob Stoklund Olesen wrote: > >> On Dec 8, 2009, at 11:33 AM, Evan Cheng wrote: >> >>> This caused a massive slow down to post-ra scheduler (llc -O3 on x86, -O2 on ARM). I'm going to revert it for now until it has been addressed. >> Probably caused by this member: >> >> /// KillIndices - The index of the most recent kill (proceding bottom-up), >> /// or ~0u if the register is not live. >> unsigned KillIndices[TargetRegisterInfo::FirstVirtualRegister]; >> >> And this: >> >> std::fill(KillIndices, array_endof(KillIndices), ~0u); >> >> It should probably be dynamically allocated with TRI->getNumRegs() members instead. > > Yep. David Goodwin is going to fix it. > > Evan > >> /jakob >> > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-- Pekka
Pekka Jääskeläinen
2010-Sep-02 11:36 UTC
[LLVMdev] [PATCH] increase the max number of physical registers
Hello, I haven't yet received any input what this patch breaks (some LLVM-external project?) and the branch creation date is tomorrow. Can someone please tell what we can do to make this patch merged in for 2.8? Thanks! On 07/06/2010 01:26 PM, Pekka Jääskeläinen wrote:> Hello, > > This patch was reverted and the revert was forgotten to be undone > after the performance regression it introduced was fixed. > > Can someone please revert it back (i.e. increase the max physreg size > to 16K or even better to 32K) to enable us to experiment with large > register number machines again? :) > > It was this trivial patch: > > Index: include/llvm/Target/TargetRegisterInfo.h > ==================================================================> --- include/llvm/Target/TargetRegisterInfo.h (revision 89468) > +++ include/llvm/Target/TargetRegisterInfo.h (working copy) > @@ -299,8 +299,8 @@ > /// FirstVirtualRegister - This is the first register number that is > /// considered to be a 'virtual' register, which is part of the SSA > /// namespace. This must be the same for all targets, which means that each > - /// target is limited to 1024 registers. > - FirstVirtualRegister = 1024 > + /// target is limited to this fixed number of registers. > + FirstVirtualRegister = 16384 > }; > > /// isPhysicalRegister - Return true if the specified register number is in > > > > On 12/09/2009 03:34 AM, Evan Cheng wrote: >> On Dec 8, 2009, at 3:31 PM, Jakob Stoklund Olesen wrote: >> >>> On Dec 8, 2009, at 11:33 AM, Evan Cheng wrote: >>> >>>> This caused a massive slow down to post-ra scheduler (llc -O3 on x86, -O2 on ARM). I'm going to revert it for now until it has been addressed. >>> Probably caused by this member: >>> >>> /// KillIndices - The index of the most recent kill (proceding bottom-up), >>> /// or ~0u if the register is not live. >>> unsigned KillIndices[TargetRegisterInfo::FirstVirtualRegister]; >>> >>> And this: >>> >>> std::fill(KillIndices, array_endof(KillIndices), ~0u); >>> >>> It should probably be dynamically allocated with TRI->getNumRegs() members instead. >> Yep. David Goodwin is going to fix it. >> >> Evan >> >>> /jakob >>> >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >> > >-- Pekka
ether zhhb
2010-Sep-02 11:57 UTC
[LLVMdev] [PATCH] increase the max number of physical registers
hi Jääskeläinen, i am very interesting in the way you write the RegisterInfo.td for the machine with such a lot registers, or it is generated by some others program? best regards ether 2010/7/6 Pekka Jääskeläinen <pekka.jaaskelainen at tut.fi>:> Hello, > > This patch was reverted and the revert was forgotten to be undone > after the performance regression it introduced was fixed. > > Can someone please revert it back (i.e. increase the max physreg size > to 16K or even better to 32K) to enable us to experiment with large > register number machines again? :) > > It was this trivial patch: > > Index: include/llvm/Target/TargetRegisterInfo.h > ==================================================================> --- include/llvm/Target/TargetRegisterInfo.h (revision 89468) > +++ include/llvm/Target/TargetRegisterInfo.h (working copy) > @@ -299,8 +299,8 @@ > /// FirstVirtualRegister - This is the first register number that is > /// considered to be a 'virtual' register, which is part of the SSA > /// namespace. This must be the same for all targets, which means that each > - /// target is limited to 1024 registers. > - FirstVirtualRegister = 1024 > + /// target is limited to this fixed number of registers. > + FirstVirtualRegister = 16384 > }; > > /// isPhysicalRegister - Return true if the specified register number is in > > > > On 12/09/2009 03:34 AM, Evan Cheng wrote: >> On Dec 8, 2009, at 3:31 PM, Jakob Stoklund Olesen wrote: >> >>> On Dec 8, 2009, at 11:33 AM, Evan Cheng wrote: >>> >>>> This caused a massive slow down to post-ra scheduler (llc -O3 on x86, -O2 on ARM). I'm going to revert it for now until it has been addressed. >>> Probably caused by this member: >>> >>> /// KillIndices - The index of the most recent kill (proceding bottom-up), >>> /// or ~0u if the register is not live. >>> unsigned KillIndices[TargetRegisterInfo::FirstVirtualRegister]; >>> >>> And this: >>> >>> std::fill(KillIndices, array_endof(KillIndices), ~0u); >>> >>> It should probably be dynamically allocated with TRI->getNumRegs() members instead. >> >> Yep. David Goodwin is going to fix it. >> >> Evan >> >>> /jakob >>> >> >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >> > > > -- > Pekka > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >
Apparently Analagous Threads
- [LLVMdev] [PATCH] increase the max number of physical registers
- [LLVMdev] [PATCH] increase the max number of physical registers
- [LLVMdev] [PATCH] increase the max number of physical registers
- [LLVMdev] [PATCH] increase the max number of physical registers
- [LLVMdev] [PATCH] increase the max number of physical registers