Page MenuHomePhabricator

Fix sign/zero extension in Dwarf expressions (with pseudo ops)
Needs ReviewPublic

Authored by markus on Mon, Jan 21, 3:17 AM.
This revision needs review, but there are no reviewers specified.

Details

Reviewers
None
Summary

Diff Detail

Event Timeline

markus created this revision.Mon, Jan 21, 3:17 AM

Can you summarize what the advantage of the new operation as opposed to using DWARF 5 type conversions would be?

Can you summarize what the advantage of the new operation as opposed to using DWARF 5 type conversions would be?

The advantages of this approach as I see it would be

  • does not require the infrastructure update to allow a debug expression reference a base_type DIE (especially the emit part of this seems hairy)
  • even if we have full DW5 ops there is still the problem of when we need to deref. This pseudo-op has that baked in (which is perhaps not such a good idea after all?). Actually I think that when and where to DW_OP_deref (and DW_OP_deref_size as is required for big-endian) is the hardest part. I am trying to raise that issue on llvm-dev https://lists.llvm.org/pipermail/llvm-dev/2019-January/129522.html and hopefully it will result in some useful insight.