[llvm-dev] Variable tracking in debug info

Son Tuan VU via llvm-dev llvm-dev at lists.llvm.org
Wed Mar 21 08:36:07 PDT 2018


Hello Paul,

Thank you for your reply. I have some more questions inlined below.



> The assignment of stack locations or physical registers is done very late,
> so in earlier phases these locations simply don't exist yet.
>

Can you define more precisely "very late"? I guess it is in the register
allocation phase in the backend?

The location/value would be an IR value.
>

But then again, how can it be an IR value? There's no IR value in the
backend isn't it?


> But it sounds like you are mostly interested in making sure the
> information isn't dropped, and you can do that by looking at all of the
> dbg.value or DBG_VALUE instructions.
>

Yes this is exactly what I am looking for: ensure that we still have the
location information after each optimization pass. And if a pass does drop
the information, remove it from the pipeline. I guess this would be a first
step towards building a -Og pipeline. Of course, if the variable is
optimized out, all we need in the binary is just a Dwarf DIE with the
declaration line to show that it exists in the source code, which is
already done by LLVM.

Hope this helps,
>
> --paulr
>
>
>
Thank you again for your help,

Son Tuan Vu
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180321/119a6bf6/attachment-0001.html>


More information about the llvm-dev mailing list