SuccessChanges

Summary

  1. [DebugInfo] Some fields do not need relocations even relax is enabled. In debug frame information, some fields, e.g., Length in CIE/FDE and Offset in FDE are attributes to describe the structure of CIE/FDE. They are not related to the relaxed code. However, these attributes are symbol differences. So, in current design, these attributes will be filled as zero and LLVM generates relocations for them. We only need to generate relocations for symbols in executable sections. So, if the symbols are not located in executable sections, we still evaluate their values under relaxation. Differential Revision: https://reviews.llvm.org/D61584
Revision 366531 by hsiangkai:
[DebugInfo] Some fields do not need relocations even relax is enabled.

In debug frame information, some fields, e.g., Length in CIE/FDE and
Offset in FDE are attributes to describe the structure of CIE/FDE. They
are not related to the relaxed code. However, these attributes are
symbol differences. So, in current design, these attributes will be
filled as zero and LLVM generates relocations for them.

We only need to generate relocations for symbols in executable sections.
So, if the symbols are not located in executable sections, we still
evaluate their values under relaxation.

Differential Revision: https://reviews.llvm.org/D61584
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/MC/MCExpr.cpp (diff)llvm.src/lib/MC/MCExpr.cpp
The file was modified/llvm/trunk/test/DebugInfo/RISCV/dwarf-riscv-relocs.ll (diff)llvm.src/test/DebugInfo/RISCV/dwarf-riscv-relocs.ll
The file was modified/llvm/trunk/test/DebugInfo/RISCV/relax-debug-frame.ll (diff)llvm.src/test/DebugInfo/RISCV/relax-debug-frame.ll
The file was modified/llvm/trunk/test/MC/RISCV/fde-reloc.s (diff)llvm.src/test/MC/RISCV/fde-reloc.s