[llvm-commits] [llvm] r152486 - /llvm/trunk/lib/CodeGen/SjLjEHPrepare.cpp

Bill Wendling wendling at apple.com
Sat Mar 10 07:48:33 PST 2012


On Mar 10, 2012, at 7:30 AM, Duncan Sands <baldrick at free.fr> wrote:

> Hi Bill,
> 
>> Implement a more intelligent way of spilling uses across an invoke boundary.
>> 
>> The old way of determine when and where to spill a value that was used inside of
>> a landing pad resulted in spilling that value everywhere and not just at the
>> invoke edge.
>> 
>> This algorithm determines which values are used within a landing pad.
> 
> I didn't look at the patch so maybe you take care of the following issue:
> looking at landing pads is not enough.  The landing pad could branch to some
> other basic block.  Any values used in that other basic block need to be
> spilled before the invoke too, right?
> 
Hi Duncan,

This doesn't look at just the landing pad. It looks at all uses of the value and then marks each BB that that value's live in. So it's crawling up the CFG. It's only when it encounters a landing pad that it adds the use to the queue of uses it needs a reload for.

-bw





More information about the llvm-commits mailing list