[LLVMdev] [PATCH] increase the max number of physical registers
pekka.jaaskelainen at tut.fi
Tue Jul 6 03:26:50 PDT 2010
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:
--- 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.
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
More information about the llvm-dev