1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 13:02:52 +02:00
llvm-mirror/test/CodeGen
Duncan P. N. Exon Smith 9bfb0f6678 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.

llvm-svn: 234021
2015-04-03 16:54:30 +00:00
..
AArch64 [DAGCombiner] Combine shuffles of BUILD_VECTOR and SCALAR_TO_VECTOR 2015-04-03 10:02:21 +00:00
ARM Verifier: Check that inlined-at locations agree 2015-04-03 16:54:30 +00:00
BPF [bpf] mark mov instructions as ReMaterializable 2015-03-31 02:49:58 +00:00
CPP
Generic LLParser: Require non-null scope for MDLocation and MDLocalVariable 2015-03-27 17:56:39 +00:00
Hexagon Expand MUX instructions early on Hexagon 2015-03-31 13:35:12 +00:00
Inputs DebugInfo: Fix bad debug info for compile units and types 2015-03-27 20:46:33 +00:00
Mips [mips] Make sure that we don't adjust the stack pointer by zero amount. 2015-04-02 10:14:54 +00:00
MSP430
NVPTX [NVPTX] Associate a minimum PTX version for each SM architecture 2015-03-30 19:30:55 +00:00
PowerPC [PowerPC] Enable splat generation for BUILD_VECTOR with little endian 2015-04-03 13:48:24 +00:00
R600 [R600/SI] Fix testcase check line. 2015-03-27 20:41:42 +00:00
SPARC
SystemZ [SystemZ] Support transactional execution on zEC12 2015-04-01 12:51:43 +00:00
Thumb DebugInfo: Fix bad debug info for compile units and types 2015-03-27 20:46:33 +00:00
Thumb2 Fix a nasty bug in DAGCombine of STORE nodes. 2015-03-19 22:48:57 +00:00
WinEH [WinEH] Make llvm.eh.actions use frameescape indices for catch params 2015-04-02 21:13:31 +00:00
X86 add checks; remove redundant testing parameters 2015-04-03 16:44:42 +00:00
XCore DebugInfo: Fix testcases that fail -verify-debug-info=true 2015-03-16 21:10:12 +00:00