[all-commits] [llvm/llvm-project] bce574: [BOLT][DWARF] Fix location list order

Alexander Yermolovich via All-commits all-commits at lists.llvm.org
Mon Aug 14 17:27:47 PDT 2023


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: bce5743e2190841973e8e0830d4fff73210f2815
      https://github.com/llvm/llvm-project/commit/bce5743e2190841973e8e0830d4fff73210f2815
  Author: Alexander Yermolovich <ayermolo at meta.com>
  Date:   2023-08-14 (Mon, 14 Aug 2023)

  Changed paths:
    M bolt/lib/Rewrite/DWARFRewriter.cpp
    A bolt/test/X86/Inputs/dwarf4-cross-cu-with-loclist.s
    A bolt/test/X86/Inputs/dwarf4-two-entries-loclist.s
    A bolt/test/X86/Inputs/dwarf5-loclist.s
    A bolt/test/X86/dwarf4-cross-cu-loclist-dwarf4-loclist--dwarf5-loclist.test

  Log Message:
  -----------
  [BOLT][DWARF] Fix location list order

This bug crept in when CU partitioning was introduced. It manifests itself when
there are CUs that use location lists that come before CUs that are part of
thin-lto. BOLT processes CUs with cross CU references first (these are produced
by thin-lto). When we wrote out all the location lists we did it in original
order. Since DWARF4 uses offsets directly in to .debug_loc those offsets in DIEs
became wrong.

Reviewed By: Amir

Differential Revision: https://reviews.llvm.org/D157908




More information about the All-commits mailing list