clayborg added a comment.

See inlined comments.



================
Comment at: source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.cpp:150-151
+    case DW_RLE_base_address: {
+      dw_addr_t base = data.GetMaxU64(offset_ptr, addrSize);
+      rangeList.push_back({DW_RLE_base_address, base, 0});
+      break;
----------------
Might be nice to not push a base address entry and store the base address 
locally and fixup any DW_RLE_offset_pair entries on the fly?


================
Comment at: source/Plugins/SymbolFile/DWARF/DWARFDebugRanges.h:51-55
+  struct RngListEntry {
+    uint8_t encoding;
+    uint64_t value0;
+    uint64_t value1;
+  };
----------------
Do we really need to store all this? Can't we just convert to address ranges on 
the fly in DWARFDebugRngLists::Extract? With the current DW_RLE_base_address 
and DW_RLE_offset_pair stuff we can store the base address locally inside the 
DWARFDebugRngLists::Extract function and skip pushing an entry for it and then 
convert any DW_RLE_offset_pair stuff into addresses by adding the base address 
before pushing the range. Or will this be required to support other opcodes?


https://reviews.llvm.org/D53140



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to