[PATCH] Emit DWARF3 call frame information when DWARF3+ debug info is requested

Oliver Stannard oliver.stannard at arm.com
Thu Jun 5 01:27:16 PDT 2014


Hi dblaikie,

Currently, llvm always emits a DWARF CIE with a version of 1, even when emitting DWARF 3 or 4, which both support CIE version 3. This patch makes it emit the newer CIE version when we are emitting DWARF 3 or 4. This will not reduce compatibility, as we already emit other DWARF3/4 features, and is worth doing as the DWARF3 spec removed some ambiguities in the interpretation of call frame information.

It also fixes a minor bug where the "return address" field of the CIE was encoded as a ULEB128, which is only valid when the CIE version is 3. There are no test changes for this, because (as far as I can tell) none of the platforms that we test have a return address register with a DWARF register number >127.

http://reviews.llvm.org/D4027

Files:
  include/llvm/Support/Dwarf.h
  lib/CodeGen/AsmPrinter/DwarfDebug.cpp
  lib/MC/MCDwarf.cpp
  test/DebugInfo/AArch64/eh_frame.s
  test/DebugInfo/AArch64/eh_frame_personality.ll
  test/DebugInfo/SystemZ/eh_frame.s
  test/DebugInfo/SystemZ/eh_frame_personality.s
  test/MC/ELF/cfi-adjust-cfa-offset.s
  test/MC/ELF/cfi-advance-loc2.s
  test/MC/ELF/cfi-def-cfa-offset.s
  test/MC/ELF/cfi-def-cfa-register.s
  test/MC/ELF/cfi-def-cfa.s
  test/MC/ELF/cfi-escape.s
  test/MC/ELF/cfi-offset.s
  test/MC/ELF/cfi-register.s
  test/MC/ELF/cfi-rel-offset.s
  test/MC/ELF/cfi-rel-offset2.s
  test/MC/ELF/cfi-remember.s
  test/MC/ELF/cfi-restore.s
  test/MC/ELF/cfi-same-value.s
  test/MC/ELF/cfi-sections.s
  test/MC/ELF/cfi-signal-frame.s
  test/MC/ELF/cfi-undefined.s
  test/MC/ELF/cfi-version.ll
  test/MC/ELF/cfi-window-save.s
  test/MC/ELF/cfi-zero-addr-delta.s
  test/MC/ELF/cfi.s
  test/MC/Mips/eh-frame.s
  test/MC/PowerPC/ppc64-initial-cfa.s
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D4027.10124.patch
Type: text/x-patch
Size: 30919 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140605/2a11a637/attachment.bin>


More information about the llvm-commits mailing list