[PATCH] D97673: [RFC] [[Coroutine] [Debug] Salvage dbg.value at O2

Chuanqi Xu via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 23 20:14:33 PDT 2021


ChuanqiXu added a comment.

In D97673#2646423 <https://reviews.llvm.org/D97673#2646423>, @lxfind wrote:

> Curious, is `%0 = bitcast %a to ...` the majority of the cases we are missing? If so, could we turn all the dbg.value instructions to use their original pointer by stripping pointer cast?

I am not sure if `%0 = bit cast %a to ...` is the majority redundant fields of coroutine frame if we enable this patch. My original idea is to add a rematerialization process to reduce the coroutine frame like register allocation. However, it maybe a little hard and benefit less. It sounds more easy and beneficial to use original pointer by value tracking. Then I think this problem may be  not introduced by this patch. Here is my example:

  %0 = bitcast %a to ...
  call @llvm.coro.suspend 
  ; ....
  use of %a
  use of %0

Then both %a and %0 would be put in the frame, which is totally redundant. We could see if there are examples other than bit cast in other patch.


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

https://reviews.llvm.org/D97673



More information about the llvm-commits mailing list