[PATCH] D68945: [DebugInfo] Don't translate dbg.addr and similar intrinsics into indirect DBG_VALUEs

Adrian Prantl via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Oct 14 12:47:28 PDT 2019


aprantl added a comment.

In D68945#1708337 <https://reviews.llvm.org/D68945#1708337>, @rnk wrote:

> One concern that I have about folding everything into the DIExpression is that they are effectively leaked. For every unique variable location description, which now includes offsets and indirection, we make a DIExpression and never clean it up. This is probably not significant in overall compilation, but it feels sloppy to me. As a future alternative, maybe we could use the same representation (sequence of DWARF opcodes), but store them as MachineInstr operands, so that they get cleaned up after emitting the MachineFunction.


I don't think that this poses a real problem since they are on average <16 bytes each and very repetitive and DIExpressions are globally uniqued by a FoldingSet, but I do see your point. A pathological case would be long-lived JIT that generates consecutive DIExpressions DW_OP_constu 0 , DW_OP_constu 1, ... .


Repository:
  rL LLVM

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

https://reviews.llvm.org/D68945





More information about the llvm-commits mailing list