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

Evan Cheng evan.cheng at apple.com
Fri Jun 18 15:48:41 PDT 2010


On Jun 18, 2010, at 3:47 PM, Jakob Stoklund Olesen wrote:

> 
> 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?

Yes, that should work.

Evan





More information about the llvm-commits mailing list