[llvm-commits] [PATCH] Prevent illegal joins of physical and virtual registers

Evan Cheng evan.cheng at apple.com
Mon Apr 27 13:17:30 PDT 2009


Looks good. Please commit.

Thanks,

Evan

On Apr 26, 2009, at 8:21 AM, Jakob Stoklund Olesen wrote:

> This is my second attempt at verifying register classes when  
> coalescing physical and virtual registers. The first attempt  
> completely missed the issue of subregisters being joined.
>
> I have attached two patches:
>
> targetregclass.patch: Change the static function  
> getSubRegisterRegClass in ScheduleDagSDNodesEmit.cpp to a method on  
> TargetRegisterClass. The method is needed by the next patch.
>
> coalesce-phys-virt.patch: Verify register classes when joining  
> physical and virtual registers. This time take into account all the  
> weird subreg combinations that are possible.
>
> Please note that this patch causes a number of failures in the  
> CodeGen/X86 test suite. That is because X86RegisterInfo.td contains  
> inconsistent information about subregister classes. I am submitting  
> a patch to the X86 backend that fixes this.
>
> With the X86 patch, this patch passes "make check".
>
> <coalesce-phys-virt.patch><targetregclass- 
> subreg.patch>_______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list