llvm-project/llvm/test/DebugInfo
Reid Kleckner 9ea2c01264 [codeview] Emit S_FRAMEPROC and use S_DEFRANGE_FRAMEPOINTER_REL
Summary:
Before this change, LLVM would always describe locals on the stack as
being relative to some specific register, RSP, ESP, EBP, ESI, etc.
Variables in stack memory are pretty common, so there is a special
S_DEFRANGE_FRAMEPOINTER_REL symbol for them. This change uses it to
reduce the size of our debug info.

On top of the size savings, there are cases on 32-bit x86 where local
variables are addressed from ESP, but ESP changes across the function.
Unlike in DWARF, there is no FPO data to describe the stack adjustments
made to push arguments onto the stack and pop them off after the call,
which makes it hard for the debugger to find the local variables in
frames further up the stack.

To handle this, CodeView has a special VFRAME register, which
corresponds to the $T0 variable set by our FPO data in 32-bit.  Offsets
to local variables are instead relative to this value.

This is part of PR38857.

Reviewers: hans, zturner, javed.absar

Subscribers: aprantl, hiraditya, JDevlieghere, llvm-commits

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

llvm-svn: 343543
2018-10-01 21:59:45 +00:00
..
AArch64 [AArch64] DWARF: do not generate AT_location for thread local 2018-08-01 23:46:49 +00:00
AMDGPU AMDGPU: Fix tests using old number for constant address space 2018-09-10 02:54:25 +00:00
ARM [DebugInfo] Normalize common kinds of DWARF sub-expressions. 2018-09-05 10:18:36 +00:00
COFF [codeview] Emit S_FRAMEPROC and use S_DEFRANGE_FRAMEPOINTER_REL 2018-10-01 21:59:45 +00:00
Generic Revert "[DebugInfo] Do not generate address info for removed debug labels." 2018-09-25 17:29:30 +00:00
Inputs Revert "[DWARF] reposting r342048, which was reverted in r342056 due to buildbot errors. Adjusted 2 test cases for ARM and darwin and fixed a bug with the original change in dsymutil." 2018-09-17 15:40:01 +00:00
Lanai
MIR [X86] Change the MOV32ri64 pseudo instruction to def a GR64 directly instead of wrapping it in a SUBREG_TO_REG. 2018-08-11 05:33:00 +00:00
MSP430 Avoid dbg.value use-before-def in a few tests (NFC) 2018-08-21 23:42:08 +00:00
Mips [DebugInfo] LowerDbgDeclare: Add derefs when handling CallInst users 2018-07-26 20:56:53 +00:00
NVPTX DebugInfo: Remove command line (& target-based) disabling of pubnames in favor of metadata 2018-08-16 23:57:15 +00:00
PDB [PDB] Add support for dumping Typedef records. 2018-10-01 17:55:38 +00:00
PowerPC [DWARF] - Emit the correct value for DW_AT_addr_base. 2018-09-20 09:17:36 +00:00
RISCV [DebugInfo] Generate fixups as emitting DWARF .debug_line. 2018-08-01 02:18:06 +00:00
Sparc [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
SystemZ [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
WebAssembly [WebAssembly] Move/clone DBG_VALUE during WebAssemblyRegStackify pass 2018-09-25 18:59:34 +00:00
X86 [codeview] Emit S_FRAMEPROC and use S_DEFRANGE_FRAMEPOINTER_REL 2018-10-01 21:59:45 +00:00
arm-relocs.test
check-debugify-preserves-analyses.ll [opt] Introduce -strip-named-metadata 2018-06-05 00:56:08 +00:00
cross-cu-scope.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
debugify-bogus-dbg-value.ll [Debugify] Allow unsigned values narrower than their variables 2018-07-06 17:32:40 +00:00
debugify-each.ll [Debugify] Add a quiet mode to suppress warnings 2018-06-06 19:05:41 +00:00
debugify-export.ll [Debugify] Export per-pass debug info loss statistics 2018-07-24 00:41:29 +00:00
debugify-report-missing-locs-only.ll Tighten up a test for -check-debugify, NFC 2018-07-02 17:08:36 +00:00
debugify.ll [Debugify] Don't treat missing dbg.values as an error (PR37942) 2018-06-26 18:54:10 +00:00
debuglineinfo-macho.test
debuglineinfo-path.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
debuglineinfo.test
debugmacinfo.test [DebugInfo] Support DWARF v5 source code embedding extension 2018-02-23 23:01:06 +00:00
dwarfdump-64-bit-dwarf.test
dwarfdump-accel.test Refactor dwarfdump -apple-names output 2018-01-29 11:33:17 +00:00
dwarfdump-debug-frame-simple.test
dwarfdump-decompression-corrupt.test
dwarfdump-decompression-error.test
dwarfdump-dump-flags.test
dwarfdump-dump-gdbindex.test
dwarfdump-dwp.test
dwarfdump-implicit-const.test
dwarfdump-invalid-line-table.test [DebugInfo] Don't crash when given invalid DWARFv5 line table prologue. 2018-01-05 10:03:02 +00:00
dwarfdump-invalid.test
dwarfdump-macho-relocs.test
dwarfdump-macho-universal.test [dsymutil] Rename llvm-dsymutil -> dsymutil 2018-03-18 11:38:41 +00:00
dwarfdump-objc.test
dwarfdump-pubnames.test
dwarfdump-ranges.test Revert "[DWARF] reposting r342048, which was reverted in r342056 due to buildbot errors. Adjusted 2 test cases for ARM and darwin and fixed a bug with the original change in dsymutil." 2018-09-17 15:40:01 +00:00
dwarfdump-type-units.test
dwarfdump-zlib.test
dwo.ll
invalid-relocations.test
llvm-symbolizer-split-dwarf-empty.test Remove some unnecessary REQUIRES: shell from a couple of llvm-symbolizer tests 2018-02-09 15:33:39 +00:00
llvm-symbolizer-split-dwarf-no-skel-address.test Pre-emptively fix test case for windows path separators 2018-02-09 15:39:04 +00:00
llvm-symbolizer-tu.test llvm-symbolizer: Fix bug related to TUs interfering with symbolizing 2018-09-11 02:04:45 +00:00
llvm-symbolizer-zlib.test
llvm-symbolizer.test llvm-symbolizer: Handle function definitions nested within other functions 2018-05-01 18:08:45 +00:00
macro_link.ll
member-pointers.o
missing-abstract-variable.o
omit-empty.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
pr34186.ll
pr34672.ll
precomp.test [Debuginfo][COFF] Minimal serialization support for precompiled types records 2018-04-09 20:17:56 +00:00
skeletoncu.ll
strip-DIGlobalVariable.ll
strip-loop-metadata.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00
strip-module-flags.ll [opt] Introduce -strip-named-metadata 2018-06-05 00:56:08 +00:00
typeunit-header.test
unrolled-loop-remainder.ll [DebugInfo] Add DILabel metadata and intrinsic llvm.dbg.label. 2018-05-09 02:40:45 +00:00