[llvm-commits] [llvm] r82968 - in /llvm/trunk: lib/CodeGen/SimpleRegisterCoalescing.cpp test/CodeGen/ARM/2009-09-27-CoalescerBug.ll test/CodeGen/Blackfin/2009-08-15-LiveIn-SubReg.ll test/CodeGen/X86/sink-hoist.ll

Jakob Stoklund Olesen stoklund at 2pi.dk
Sun Sep 27 22:52:47 PDT 2009


On 28/09/2009, at 07.28, Evan Cheng wrote:
>
> Coalescer should not delete extract_subreg, insert_subreg, and  
> subreg_to_reg of
> physical registers. This is especially critical for the later two  
> since they
> start the live interval of a super-register. e.g.
> %DO<def> = INSERT_SUBREG %D0<undef>, %S0<kill>, 1
> If this instruction is eliminated, the register scavenger will not  
> be happy as
> D0 is not defined previously.
> This fixes PR5055.

Right. It should be harmless to leave them for LowerSubreg.

Are we aiming to introduce the KILL instruction in a 2.7 time frame?  
It seems like a simple operation to me.

> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/test/CodeGen/Blackfin/2009-08-15-LiveIn-SubReg.ll  
> (original)
> +++ llvm/trunk/test/CodeGen/Blackfin/2009-08-15-LiveIn-SubReg.ll Mon  
> Sep 28 00:28:43 2009
> @@ -1,5 +1,4 @@
> ; RUN: llc < %s -march=bfin -verify-machineinstrs
> -; XFAIL: *

Awesome!




More information about the llvm-commits mailing list