[llvm-commits] [llvm] r112828 - /llvm/trunk/lib/Target/TargetRegisterInfo.cpp

Jakob Stoklund Olesen stoklund at 2pi.dk
Thu Sep 2 11:02:42 PDT 2010


On Sep 2, 2010, at 9:31 AM, Jim Grosbach wrote:

> Author: grosbach
> Date: Thu Sep  2 11:31:21 2010
> New Revision: 112828
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=112828&view=rev
> Log:
> Mask out reserved registers when constructing the set of allocatable regs.
> 
> Modified:
>    llvm/trunk/lib/Target/TargetRegisterInfo.cpp
> 
> Modified: llvm/trunk/lib/Target/TargetRegisterInfo.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/TargetRegisterInfo.cpp?rev=112828&r1=112827&r2=112828&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/TargetRegisterInfo.cpp (original)
> +++ llvm/trunk/lib/Target/TargetRegisterInfo.cpp Thu Sep  2 11:31:21 2010
> @@ -80,6 +80,11 @@
>   for (TargetRegisterInfo::regclass_iterator I = regclass_begin(),
>          E = regclass_end(); I != E; ++I)
>     getAllocatableSetForRC(MF, *I, Allocatable);
> +
> +  // Mask out the reserved registers
> +  BitVector Reserved = getReservedRegs(MF);
> +  Allocatable ^= Reserved & Allocatable;
> +
>   return Allocatable;
> }

Jim,

I think you should include the case where RC is non-NULL as well. It is used by AggressiveAntiDepBreaker and SimpleRegisterCoalescing.

/jakob





More information about the llvm-commits mailing list