[LLVMdev] [PATCH] increase the max number of physical registers
Pekka Jääskeläinen
pekka.jaaskelainen at tut.fi
Thu Sep 2 04:36:10 PDT 2010
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
More information about the llvm-dev
mailing list