[llvm-commits] [llvm] r106333 - in /llvm/trunk: lib/CodeGen/LiveIntervalAnalysis.cpp test/CodeGen/Thumb2/crash.ll

Jakob Stoklund Olesen stoklund at 2pi.dk
Fri Jun 18 15:47:34 PDT 2010


On Jun 18, 2010, at 3:40 PM, Evan Cheng wrote:

> 
> On Jun 18, 2010, at 3:29 PM, Jakob Stoklund Olesen wrote:
> 
>> Author: stoklund
>> Date: Fri Jun 18 17:29:44 2010
>> New Revision: 106333
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=106333&view=rev
>> Log:
>> TwoAddressInstructionPass::CoalesceExtSubRegs can insert INSERT_SUBREG
>> instructions, but it doesn't really understand live ranges, so the first
>> INSERT_SUBREG uses an implicitly defined register.
>> 
>> Fix it in LiveVariableAnalysis by adding the <undef> flag.
> 
> Is this correct? Two-address pass is run even when livevariableanalysis is not.

Uack. You are right.

It is really hard for 2-addr to determine the beginning of the live range where an <undef> is required. It is similar to the problem of updating kill flags which it also gets wrong.

We could disable CoalesceExtSubRegs when LiveVariables in not present?





More information about the llvm-commits mailing list