[PATCH] D97673: [RFC] [[Coroutine] [Debug] Salvage dbg.values

Chuanqi Xu via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Dec 2 18:19:39 PST 2021


ChuanqiXu added a comment.

In D97673#3168737 <https://reviews.llvm.org/D97673#3168737>, @hoy wrote:

> In D97673#3168709 <https://reviews.llvm.org/D97673#3168709>, @ChuanqiXu wrote:
>
>> @hoy The rationale here is that the dbg.declare intrinsics might be lost due to coroutine split. So we move the dbg.declare intrinsics to the place where the Storage is just created. So if it caused crash, I think we could skip the kind of case. Or it would be better to insert dbg.declare to the start of successor blocks in the case of invoke. (Would any other terminator return a value?) 
>> BTW, there is nothing in your repro link.
>
> An invoke instruction is a call instruction that can throw exceptions. It is a block terminator and can return a value.  Looks like dbg.declare can only appear once so maybe we could only move it to one of the successors, or just skip this case.
>
> There is a test file in my repro link. The file is probably too large (40MB) to be rendered. Sorry for not being able to get a smaller repro case.

Got it. I would try to fix this. Thanks for reporting this.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D97673/new/

https://reviews.llvm.org/D97673



More information about the llvm-commits mailing list