clayborg requested changes to this revision.
clayborg added a comment.
This revision now requires changes to proceed.

Yes this fixes the regression and actually speeds things up a bit. My results 
were a speed up of 17% to 30% versus 11.3.1 LLDB.

Just one nit in the way we are getting the DW_AT_stmt_list and not adding in 
the line table offset in the inline comments and this is good to go.



================
Comment at: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp:893-896
+  const dw_offset_t cu_line_offset = dwarf_cu_die.GetAttributeValueAsUnsigned(
+      DW_AT_stmt_list, DW_INVALID_OFFSET);
+  if (cu_line_offset == DW_INVALID_OFFSET)
+    return false;
----------------
DWARFContext::getLineTableForUnit() in 
llvm/lib/DebugInfo/DWARF/DWARFContext.cpp grabs the DW_AT_stmt_list like this:

```
  auto Offset = toSectionOffset(UnitDIE.find(DW_AT_stmt_list));
  if (!Offset)
    return false; // No line table for this compile unit.

  uint64_t stmtOffset = *Offset + U->getLineTableOffset();
```
Modifying this a bit would be a good idea to make sure we are compatible with 
all DWARF. Or we can put a function into DWARFUnit that does this correctly and 
switch DWARFContext::getLineTableForUnit() and our code over to use it to avoid 
duplicated code. 


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

https://reviews.llvm.org/D81589



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

Reply via email to