[llvm-dev] [LLVMdev] Improving the quality of debug locations / DbgValueHistoryCalculator
Adrian Prantl via llvm-dev
llvm-dev at lists.llvm.org
Wed May 11 13:43:24 PDT 2016
> On May 11, 2016, at 1:12 PM, Francois Pichet <pichet2000 at gmail.com> wrote:
>
> Hello,
>
> Regarding the problem of debug range for optimized code.
> Currently a DEBUG_VALUE will be inserted after the <def>vregX
> DEBUG_VALUE are only valid until the end of the current MachineBasicBlock. That's the main problem.
> Why not simply iterate over all uses of vregX and insert an DEBUG_VALUE in all the MachineBasicBlocks where vregX is used. (pre regalloc)
>
> I prototyped a small pass to do that and at first it seems to improve .debug_loc range validity and enhance the debugging experience for optimized code.
The problem that I see with this approach is that DEBUG_VALUEs are only valid until the next DEBUG_VALUE that describes the same variable. How does your pass handle:
BB0:
DEBUG_VALUE “x”, vreg0
| |
| BB1:
| DEBUG_VALUE “x”, vreg1
| |
\_____BB2:
| |
|____/
BB2:
vreg0 // still not clobbered here.
Does it insert a DEBUG_VALUE “x”, vreg0 into BB2?
-- adrian
More information about the llvm-dev
mailing list