[all-commits] [llvm/llvm-project] fe899c: [DWARFLinker] Fix matching logic to remove type 1 ...

Peter Rong via All-commits all-commits at lists.llvm.org
Thu Jul 31 14:14:17 PDT 2025


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: fe899cedac18cf3fcf70c58084a1940936ab9a95
      https://github.com/llvm/llvm-project/commit/fe899cedac18cf3fcf70c58084a1940936ab9a95
  Author: Peter Rong <peterrong96 at gmail.com>
  Date:   2025-07-31 (Thu, 31 Jul 2025)

  Changed paths:
    M llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
    M llvm/test/tools/dsymutil/ARM/stmt-seq-macho.test

  Log Message:
  -----------
  [DWARFLinker] Fix matching logic to remove type 1 missing offset (#151427)

Reverts the [revert](https://github.com/llvm/llvm-project/pull/151424)
and fixed some typos.

Original PR description:

Second attempt to fix
https://discourse.llvm.org/t/rfc-new-dwarf-attribute-for-symbolication-of-merged-functions/79434/29?u=alx32

(First attempt: https://github.com/llvm/llvm-project/pull/143656)

Context: the sequence offset to row index we parsed may not be complete.
And we need to add manual matching to it.

https://github.com/llvm/llvm-project/pull/143656 attempts to do trivial
1:1 matching, however, sometimes they don't line up perfectly, as shown
below:

// While SeqOffToOrigRow parsed from CU could be the ground truth,
         // e.g.
         //
         // SeqOff     Row
         // 0x08        9
         // 0x14       15
         //
         // The StmtAttrs and SeqStartRows may not match perfectly, e.g.
         //
         // StmtAttrs  SeqStartRows
         // 0x04        3
         // 0x08        5
         // 0x10        9
         // 0x12       11
         // 0x14       15
         //
// In this case, we don't want to assign 5 to 0x08, since we know 0x08
// maps to 9. If we do a dummy 1:1 mapping 0x10 will be mapped to 9
// which is incorrect. The expected behavior is ignore 5, realign the
         // table based on the result from the line table:
         //
         // StmtAttrs  SeqStartRows
         // 0x04        3
         //   --        5
         // 0x08        9 <- LineTableMapping ground truth
         // 0x10       11
         // 0x12       --
         // 0x14       15 <- LineTableMapping ground truth
In this case, we need to use the mapping we read from the line table as
a ground truth and organize them properly to prevent duplicated
offset/missing offset.

Test:

Updated the test case

---------

Signed-off-by: Peter Rong <PeterRong at meta.com>
Co-authored-by: Ellis Hoag <ellis.sparky.hoag at gmail.com>



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list