[all-commits] [llvm/llvm-project] f01205: [DWARF] Emit DW_AT_call_return_pc as an address

Vedant Kumar via All-commits all-commits at lists.llvm.org
Wed Jan 15 13:13:39 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: f0120556c7e2ef14ff3da5bd7d5717cedf94b767
      https://github.com/llvm/llvm-project/commit/f0120556c7e2ef14ff3da5bd7d5717cedf94b767
  Author: Vedant Kumar <vsk at apple.com>
  Date:   2020-01-15 (Wed, 15 Jan 2020)

  Changed paths:
    M lldb/include/lldb/Symbol/Function.h
    A lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/Makefile
    A lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/One.mk
    A lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/One/One.c
    A lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/TestCrossDSOTailCalls.py
    A lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/Two.mk
    A lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/Two/Two.c
    A lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/main.c
    A lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_dso/shared.h
    A lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_object/Makefile
    A lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_object/One.c
    A lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_object/TestCrossObjectTailCalls.py
    A lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_object/Two.c
    A lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_object/main.c
    A lldb/packages/Python/lldbsuite/test/functionalities/tail_call_frames/cross_object/shared.h
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
    M lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.h
    M lldb/source/Symbol/Function.cpp
    M llvm/include/llvm/CodeGen/DebugHandlerBase.h
    M llvm/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
    M llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
    M llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.h
    M llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
    M llvm/test/DebugInfo/X86/debug_addr.ll
    A llvm/test/tools/dsymutil/Inputs/call-site-entry.c
    A llvm/test/tools/dsymutil/Inputs/call-site-entry.macho.x86_64
    A llvm/test/tools/dsymutil/Inputs/call-site-entry.macho.x86_64.o
    A llvm/test/tools/dsymutil/call-site-entry-linking.test
    M llvm/tools/dsymutil/DwarfLinkerForBinary.cpp

  Log Message:
  -----------
  [DWARF] Emit DW_AT_call_return_pc as an address

This reverts D53469, which changed llvm's DWARF emission to emit
DW_AT_call_return_pc as a function-local offset. Such an encoding is not
compatible with post-link block re-ordering tools and isn't standards-
compliant.

In addition to reverting back to the original DW_AT_call_return_pc
encoding, teach lldb how to fix up DW_AT_call_return_pc when the address
comes from an object file pointed-to by a debug map. While doing this I
noticed that lldb's support for tail calls that cross a DSO/object file
boundary wasn't covered, so I added tests for that. This latter case
exercises the newly added return PC fixup.

The dsymutil changes in this patch were originally included in D49887:
the associated test should be sufficient to test DW_AT_call_return_pc
encoding purely on the llvm side.

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


  Commit: a2cc80bc95703b99afefddb1d9d545c639ac4ff5
      https://github.com/llvm/llvm-project/commit/a2cc80bc95703b99afefddb1d9d545c639ac4ff5
  Author: Vedant Kumar <vsk at apple.com>
  Date:   2020-01-15 (Wed, 15 Jan 2020)

  Changed paths:
    M llvm/include/llvm/IR/DebugInfo.h
    M llvm/lib/IR/DebugInfo.cpp
    M llvm/lib/Transforms/Utils/InlineFunction.cpp

  Log Message:
  -----------
  DebugInfo: Factor out logic to update locations in MD_loop metadata, NFC

Factor out the logic needed to update debug locations contained within
MD_loop metadata.

This refactor is preparation for a future change that also needs to
rewrite MD_loop metadata.

rdar://45507940


Compare: https://github.com/llvm/llvm-project/compare/d629525597eb...a2cc80bc9570


More information about the All-commits mailing list