This is an archive of the discontinued LLVM Phabricator instance.

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

Authored by markus on Jan 21 2019, 3:17 AM.

Details

Reviewers
None
Summary

Diff Detail

Event Timeline

markus created this revision.Jan 21 2019, 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.
markus abandoned this revision.Mar 22 2019, 3:38 AM
Herald added a project: Restricted Project. · View Herald TranscriptMar 22 2019, 3:38 AM