<div class="__aliyun_email_body_block"><div  style="clear:both;"><span  style="font-family:Tahoma,Arial,STHeiti,SimSun;font-size:14.0px;color:#000000;">Hi,</span></div><div  style="clear:both;"><span  style="font-family:Tahoma,Arial,STHeiti,SimSun;font-size:14.0px;color:#000000;"><br ></span></div><div  style="clear:both;"><span  style="font-family:Tahoma,Arial,STHeiti,SimSun;font-size:14.0px;color:#000000;">Recently I am working on constructing debug information in LLVM for C++ Coroutine Frame: https://reviews.llvm.org/D99179.</span></div><div  style="clear:both;"><span  style="font-family:Tahoma,Arial,STHeiti,SimSun;font-size:14.0px;color:#000000;">The reason why we can't construct thr debug information for C++ Coroutine Frame in the frontend is the framework of LLVM</span></div><div  style="clear:both;">coroutine decides to construct the frame in the middle end. So we can't know the layout of the coroutine frame until the coro-split</div><div  style="clear:both;">pass.</div><div  style="clear:both;"><br ></div><div  style="clear:both;">Then a lot of my collegues told me many times that it is very important to them to see the frame in the debugger in production </div><div  style="clear:both;">environment. Although many things in the frame are temporaries produced by compiler, my collegues are still satisfied to see the</div><div  style="clear:both;">frame.</div><div  style="clear:both;"><br ></div><div  style="clear:both;">But I am also agree with that it is a little bit odd to contruct the debug information in the middle end. I get this from the API</div><div  style="clear:both;">design. And about half of codes in D99179 are trying to construct the debug information from corresponding LLVM type, which </div><div  style="clear:both;">is unrelated to coroutine module. </div><div  style="clear:both;"><br ></div><div  style="clear:both;">As the reviewer's suggestion, I want to ask the opinion from the debug info folks:</div><div  style="clear:both;">- <span  style="font-style:normal;font-variant-caps:normal;font-weight:normal;text-indent:.0px;text-transform:none;text-decoration:none;caret-color:#000000;color:#000000;font-family:Segoe UI,Segoe UI Emoji,Segoe UI Symbol,Lato,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:13.0px;text-align:left;background-color:#ffffff;float:none;display:inline;">Is it ok to construct debug information in LLVM Passes?</span></div><div  style="clear:both;"><span  style="font-style:normal;font-variant-caps:normal;font-weight:normal;text-indent:.0px;text-transform:none;text-decoration:none;caret-color:#000000;color:#000000;font-family:Segoe UI,Segoe UI Emoji,Segoe UI Symbol,Lato,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:13.0px;text-align:left;background-color:#ffffff;float:none;display:inline;">- <span  style="font-style:normal;font-variant-caps:normal;font-weight:normal;text-indent:.0px;text-transform:none;text-decoration:none;caret-color:#000000;color:#000000;font-family:Segoe UI,Segoe UI Emoji,Segoe UI Symbol,Lato,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:13.0px;text-align:left;background-color:#ffffff;float:none;display:inline;">If no, is there any method to help us to solve these problems? </span></span></div><div  style="clear:both;"><span  style="font-style:normal;font-variant-caps:normal;font-weight:normal;text-indent:.0px;text-transform:none;text-decoration:none;caret-color:#000000;color:#000000;font-family:Segoe UI,Segoe UI Emoji,Segoe UI Symbol,Lato,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:13.0px;text-align:left;background-color:#ffffff;float:none;display:inline;"><span  style="font-style:normal;font-variant-caps:normal;font-weight:normal;text-indent:.0px;text-transform:none;text-decoration:none;caret-color:#000000;color:#000000;font-family:Segoe UI,Segoe UI Emoji,Segoe UI Symbol,Lato,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:13.0px;text-align:left;background-color:#ffffff;float:none;display:inline;"><br ></span></span></div><div  style="clear:both;"><span  style="font-style:normal;font-variant-caps:normal;font-weight:normal;text-indent:.0px;text-transform:none;text-decoration:none;caret-color:#000000;color:#000000;font-family:Segoe UI,Segoe UI Emoji,Segoe UI Symbol,Lato,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:13.0px;text-align:left;background-color:#ffffff;float:none;display:inline;"><span  style="font-style:normal;font-variant-caps:normal;font-weight:normal;text-indent:.0px;text-transform:none;text-decoration:none;caret-color:#000000;color:#000000;font-family:Segoe UI,Segoe UI Emoji,Segoe UI Symbol,Lato,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:13.0px;text-align:left;background-color:#ffffff;float:none;display:inline;">Thanks,</span></span></div><div  style="clear:both;"><span  style="font-style:normal;font-variant-caps:normal;font-weight:normal;text-indent:.0px;text-transform:none;text-decoration:none;caret-color:#000000;color:#000000;font-family:Segoe UI,Segoe UI Emoji,Segoe UI Symbol,Lato,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:13.0px;text-align:left;background-color:#ffffff;float:none;display:inline;"><span  style="font-style:normal;font-variant-caps:normal;font-weight:normal;text-indent:.0px;text-transform:none;text-decoration:none;caret-color:#000000;color:#000000;font-family:Segoe UI,Segoe UI Emoji,Segoe UI Symbol,Lato,Helvetica Neue,Helvetica,Arial,sans-serif;font-size:13.0px;text-align:left;background-color:#ffffff;float:none;display:inline;">Chuanqi</span></span></div></div>