llvm-6502/test/DebugInfo
Duncan P. N. Exon Smith b0d0a65e1d Verifier: Check that inlined-at locations agree
Check that the `MDLocalVariable::getInlinedAt()` in a debug info
intrinsic's variable always matches the `MDLocation::getInlinedAt()` of
its `!dbg` attachment.

The goal here is to get rid of `MDLocalVariable::getInlinedAt()`
entirely (PR22778), since it's expensive and unnecessary, but I'll let
this verifier check bake for a while (a week maybe?) first.  I've
updated the testcases that had the wrong value for `inlinedAt:`.

This checks that things are sane in the IR, but currently things go out
of whack in a few places in the backend.  I'll follow shortly with
assertions in the backend (with code fixes).

If you have out-of-tree testcases that just started failing, here's how
I updated these ones:

 1. The verifier check gives you the basic block, function, instruction,
    and relevant metadata arguments (metadata numbering doesn't
    necessarily match the source file, unfortunately).
 2. Look at the `@llvm.dbg.*()` instruction, and compare the
    `inlinedAt:` fields of the variable argument (second `metadata`
    argument) and the `!dbg` attachment.
 3. Figure out based on the variable `scope:` chain and the functions in
    the file whether the variable has been inlined (and into what), so
    you can determine which `inlinedAt:` is actually correct.  In all of
    the in-tree testcases, the `!MDLocation()` was correct and the
    `!MDLocalVariable()` was wrong, but YMMV.
 4. Duplicate the metadata that you're going to change, and add/drop the
    `inlinedAt:` field from one of them.  Be careful that the other
    references to the same metadata node point at the correct one.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234021 91177308-0d34-0410-b5e6-96231b3b80d8
2015-04-03 16:54:30 +00:00
..
AArch64 [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
ARM DebugInfo: Fix bad debug info for compile units and types 2015-03-27 20:46:33 +00:00
COFF Use the existing begin and end symbol for debug info. 2015-03-05 02:05:42 +00:00
Inputs DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
Mips Verifier: Check that inlined-at locations agree 2015-04-03 16:54:30 +00:00
PDB [llvm-pdbdump] Display full enum definitions. 2015-03-04 06:09:53 +00:00
PowerPC Print section start labels when first switching to the section. 2015-03-11 00:51:37 +00:00
Sparc [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
SystemZ DebugInfo: Fix bad debug info for compile units and types 2015-03-27 20:46:33 +00:00
X86 Verifier: Check that inlined-at locations agree 2015-04-03 16:54:30 +00:00
2009-10-16-Phi.ll IR: Make metadata typeless in assembly 2014-12-15 19:07:53 +00:00
2009-11-03-InsertExtractValue.ll DebugInfo: Fix testcases with invalid MDSubprogram nodes 2015-03-28 02:26:45 +00:00
2009-11-05-DeadGlobalVariable.ll DebugInfo: Fix bad debug info for compile units and types 2015-03-27 20:46:33 +00:00
2009-11-06-NamelessGlobalVariable.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
2009-11-10-CurrentFn.ll DebugInfo: Update testcases with invalid variables 2015-03-27 01:58:34 +00:00
2010-01-05-DbgScope.ll DebugInfo: Fix bad debug info for compile units and types 2015-03-27 20:46:33 +00:00
2010-03-12-llc-crash.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
2010-03-19-DbgDeclare.ll DebugInfo: Update testcases with invalid variables 2015-03-27 01:58:34 +00:00
2010-03-24-MemberFn.ll DebugInfo: Fix bad debug info for compile units and types 2015-03-27 20:46:33 +00:00
2010-04-06-NestedFnDbgInfo.ll DebugInfo: Fix bad debug info for compile units and types 2015-03-27 20:46:33 +00:00
2010-04-19-FramePtr.ll DebugInfo: Fix bad debug info for compile units and types 2015-03-27 20:46:33 +00:00
2010-05-03-DisableFramePtr.ll DebugInfo: Fix bad debug info for compile units and types 2015-03-27 20:46:33 +00:00
2010-05-03-OriginDIE.ll Verifier: Check that inlined-at locations agree 2015-04-03 16:54:30 +00:00
2010-05-10-MultipleCU.ll DebugInfo: Fix bad debug info for compile units and types 2015-03-27 20:46:33 +00:00
2010-06-29-InlinedFnLocalVar.ll Verifier: Check that inlined-at locations agree 2015-04-03 16:54:30 +00:00
2010-07-19-Crash.ll DebugInfo: Fix bad debug info for compile units and types 2015-03-27 20:46:33 +00:00
2010-10-01-crash.ll DebugInfo: Fix bad debug info for compile units and types 2015-03-27 20:46:33 +00:00
accel-table-hash-collisions.ll DwarfAccelTable: Fix handling of hash collisions. 2015-03-10 00:46:31 +00:00
arm-relocs.test
array.ll DebugInfo: Fix bad debug info for compile units and types 2015-03-27 20:46:33 +00:00
block-asan.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
bug_null_debuginfo.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
constant-pointers.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
cross-cu-inlining.ll Verifier: Check that inlined-at locations agree 2015-04-03 16:54:30 +00:00
cross-cu-linkonce-distinct.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
cross-cu-linkonce.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
cu-range-hole.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
cu-ranges.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
dead-argument-order.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
debug-info-always-inline.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
debug-info-qualifiers.ll DebugInfo: Fix testcases with invalid MDSubprogram nodes 2015-03-28 02:26:45 +00:00
debuginfofinder-multiple-cu.ll DebugInfo: Fix bad debug info for compile units and types 2015-03-27 20:46:33 +00:00
debuglineinfo.test
dwarf-public-names.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
dwarfdump-accel.test Reapply "[dwarfdump] Add support for dumping accelerator tables." 2014-11-14 16:15:53 +00:00
dwarfdump-debug-frame-simple.test [dwarfdump] Make debug_frame dump actually useful. 2015-02-25 21:30:22 +00:00
dwarfdump-debug-loc-simple.test
dwarfdump-dump-flags.test
dwarfdump-line-dwo.test
dwarfdump-objc.test [dwarfdump] Prettyprint DW_AT_APPLE_property_attribute bitfield values. 2014-10-10 15:51:10 +00:00
dwarfdump-pubnames.test
dwarfdump-ranges.test [dwarfdump] Dump DW_AT_ranges values inline in the debug_info dump. 2014-10-23 04:08:34 +00:00
dwarfdump-type-units.test
dwarfdump-zlib.test Kill symbolization functionality in llvm-dwarfdump. We have llvm-symbolizer for that. 2014-05-19 18:45:32 +00:00
empty.ll Split test in two to handle building without x86. 2015-03-10 23:44:12 +00:00
enum-types.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
enum.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
global.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
gmlt.test test: XFAIL the non-darwin gmlt test on darwin 2014-10-01 05:45:45 +00:00
incorrect-variable-debugloc1.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
incorrect-variable-debugloc.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
inheritance.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
inline-debug-info-multiret.ll DebugInfo: Fix bad debug info for compile units and types 2015-03-27 20:46:33 +00:00
inline-debug-info.ll DebugInfo: Fix bad debug info for compile units and types 2015-03-27 20:46:33 +00:00
inline-no-debug-info.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
inline-scopes.ll Verifier: Check that inlined-at locations agree 2015-04-03 16:54:30 +00:00
inlined-arguments.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
inlined-vars.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
llvm-symbolizer-zlib.test Kill symbolization functionality in llvm-dwarfdump. We have llvm-symbolizer for that. 2014-05-19 18:45:32 +00:00
llvm-symbolizer.test Remove "REQUIRES:shell" from tests. They work for me. 2014-11-04 13:41:33 +00:00
location-verifier.ll Verifier: Check that !dbg attachments have the right type 2015-03-20 19:26:58 +00:00
lto-comp-dir.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
member-order.ll DebugInfo: Fix testcases with invalid MDSubprogram nodes 2015-03-28 02:26:45 +00:00
member-pointers.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
member-pointers.o Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
missing-abstract-variable.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
missing-abstract-variable.o Revert "Revert "DI: Fold constant arguments into a single MDString"" 2014-10-03 20:01:09 +00:00
multiline.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
namespace_function_definition.ll Emit correct linkage-name attribute based on DWARF version. 2015-03-10 22:44:45 +00:00
namespace_inline_function_definition.ll Verifier: Check that inlined-at locations agree 2015-04-03 16:54:30 +00:00
namespace.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
nodebug.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
piece-verifier.ll Verifier: Remove unnecessary double-checks 2015-03-16 20:24:02 +00:00
PR20038.ll Verifier: Check that inlined-at locations agree 2015-04-03 16:54:30 +00:00
restrict.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
sugared-constants.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
template-recursive-void.ll DebugInfo: Fix testcases with invalid MDSubprogram nodes 2015-03-28 02:26:45 +00:00
tu-composite.ll DebugInfo: Fix testcases with invalid MDSubprogram nodes 2015-03-28 02:26:45 +00:00
tu-member-pointer.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
two-cus-from-same-file.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
typedef.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
unconditional-branch.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
varargs.ll DebugInfo: Fix testcases with invalid MDSubprogram nodes 2015-03-28 02:26:45 +00:00
version.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00