[PATCH] D158185: [DebugInfo] Process single-location debug values in variadic form when producing DWARF

Stephen Tozer via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Sep 20 05:31:24 PDT 2023


StephenTozer added a comment.

In D158185#4648729 <https://reviews.llvm.org/D158185#4648729>, @fdeazeve wrote:

> I've just noticed that, for reasons I am still investigating, the optimizer produced this expression in some test:

Are you able to post the test source or an unoptimized reproducer?

> I suspect a similar issue happens with the current implementation of the `isDeref` check. Any thoughts on this? I'm unsure what kind of semantics those `isX` methods should have in the presence of variadic arg lists

The awkwardness of those functions in the context of a variadic debug value is that they're really meant to refer to a specific value, i.e. "is this expression dereferencing register `x`?", rather than being a property of the expression as a whole. Rewriting these to make this make sense is another piece of work imo - for the cases other than `isEntryValue` I don't think this is an issue because iirc they're only being used in cases where we only care about non-variadic debug values anyway. The entry value case should be investigated further (and as you note in your second comment, the expression as written is incorrect).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D158185



More information about the llvm-commits mailing list