[llvm-commits] [llvm] r134413 - in /llvm/trunk: lib/CodeGen/InlineSpiller.cpp lib/CodeGen/LiveRangeEdit.cpp test/CodeGen/X86/crash.ll

Jakob Stoklund Olesen stoklund at 2pi.dk
Tue Jul 5 13:19:20 PDT 2011


On Jul 5, 2011, at 9:45 AM, Rafael Ávila de Espíndola wrote:

> On 07/05/2011 11:38 AM, Jakob Stoklund Olesen wrote:
>> Author: stoklund
>> Date: Tue Jul  5 10:38:41 2011
>> New Revision: 134413
>> 
>> URL: http://llvm.org/viewvc/llvm-project?rev=134413&view=rev
>> Log:
>> Fix PR10277.
>> 
>> Remat during spilling triggers dead code elimination. If a phi-def
>> becomes unused, that may also cause live ranges to split into separate
>> connected components.
>> 
>> This type of splitting is different from normal live range splitting. In
>> particular, there may not be a common original interval.
>> 
>> When the split range is its own original, make sure that the new
>> siblings are also their own originals. The range being split cannot be
>> used as an original since it doesn't cover the new siblings.
>> 
> 
> Thanks!
> 
> I had just managed to produce a testcase without tail duplication :-)
> 
> Do you have a reference on what was going on? Why do we track the 
> original live interval when splitting?

It is used mostly by the spiller when hoisting spills. See InlineSpiller::traceSiblingValue and surrounding methods.

/jakob





More information about the llvm-commits mailing list