[DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame.
authorHsiangkai Wang <hsiangkai@gmail.com>
Fri, 19 Jul 2019 02:03:34 +0000 (02:03 +0000)
committerHsiangkai Wang <hsiangkai@gmail.com>
Fri, 19 Jul 2019 02:03:34 +0000 (02:03 +0000)
commit18ccfadd4630878275f1142de7bd1b4e55ee2989
treef7dc54ad9e05a3aa51682d1ac164be0af01081cf
parentccbffefccaff42b0d094c9ef0f49fc3e8c8456ea
[DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame.

It is necessary to generate fixups in .debug_frame or .eh_frame as
relaxation is enabled due to the address delta may be changed after
relaxation.

There is an opcode with 6-bits data in debug frame encoding. So, we
also need 6-bits fixup types.

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

llvm-svn: 366524
16 files changed:
llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h
llvm/include/llvm/DebugInfo/DWARF/DWARFObject.h
llvm/include/llvm/MC/MCDwarf.h
llvm/include/llvm/MC/MCFixup.h
llvm/include/llvm/MC/MCFragment.h
llvm/lib/DebugInfo/DWARF/DWARFContext.cpp
llvm/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp
llvm/lib/MC/MCAsmBackend.cpp
llvm/lib/MC/MCAssembler.cpp
llvm/lib/MC/MCDwarf.cpp
llvm/lib/Object/RelocationResolver.cpp
llvm/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
llvm/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
llvm/test/CodeGen/RISCV/fixups-relax-diff.ll
llvm/test/DebugInfo/RISCV/relax-debug-frame.ll [new file with mode: 0644]
llvm/tools/dsymutil/DwarfLinker.cpp