[PATCH] Allocate stack storage for .block_descriptor and captured self.

Adrian Prantl aprantl at apple.com
Tue Feb 26 09:16:55 PST 2013


On Feb 25, 2013, at 5:02 PM, John McCall <rjmccall at apple.com> wrote:

> On Feb 25, 2013, at 4:55 PM, Adrian Prantl <aprantl at apple.com> wrote:
>> here’s another patch for review:
>> 
>> Allocate stack storage for .block_descriptor and captured self.
>> This way the register allocator will not optimize away the the
>> debug info for captured variables.
> 
> Allocating stack storage is not the right way to fix this problem.
> The frontend is emitting the right intrinsics to say that the argument
> is being kept in an LLVM value, not in memory.  If that's not working,
> then basically all optimized debug info is useless.

Just to provide you with more details: The problem manifested itself even at -O0 because the DebugValue would be kicked out by RegAllocFast.cpp:855 under high register pressure (I think). Is there another, better way to force the DebugValue to survive register allocation?

—- adrian



More information about the cfe-commits mailing list