llvm-project/llvm/test/DebugInfo/AArch64
Jeremy Morse 313d2ce999 [DebugInfo] LiveDebugValues should always revisit backedges if it skips them
The "join" method in LiveDebugValues does not attempt to join unseen
predecessor blocks if their out-locations aren't yet initialized, instead
the block should be re-visited later to see if any locations have changed
validity. However, because the set of blocks were all being "process"'d
once before "join" saw them, that logic in "join" was actually ignoring
legitimate out-locations on the first pass through. This meant that some
invalidated locations were not removed from the head of loops, allowing
illegal locations to persist.

Fix this by removing the run of "process" before the main join/process loop
in ExtendRanges. Now the unseen predecessors that "join" skips truly are
uninitialized, and we come back to the block at a later time to re-run
"join", see the @baz function added.

This also fixes another fault where stack/register transfers in the entry
block (or any other before-any-loop-block) had their tranfers initially
ignored, and were then never revisited. The MIR test added tests for this
behaviour.

XFail a test that exposes another bug; a fix for this is coming in D66895.

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

llvm-svn: 370328
2019-08-29 10:53:29 +00:00
..
asan-stack-vars.mir Describe stack-id as an enum 2019-06-17 09:13:29 +00:00
big-endian-dump.ll
big-endian.ll
bitfields.ll
cfi-eof-prologue.ll [GlobalISel][IRTranslator] Add debug loc with line 0 to constants emitted into the entry block. 2019-06-13 22:15:35 +00:00
coalescing.ll
compiler-gen-bbs-livedebugvalues.mir [DebugInfo] LiveDebugValues should always revisit backedges if it skips them 2019-08-29 10:53:29 +00:00
constant-dbgloc.ll
dagcombine-zext.ll
dbg-value-i8.ll
dbg-value-i16.ll
dwarfdump.ll llvm-dwarfdump: Dump the section name/number for addr attributes 2018-12-22 20:34:58 +00:00
eh_frame.s
eh_frame_personality.ll
frameindices.ll Replace "no-frame-pointer-*" function attributes with "frame-pointer" 2019-01-14 10:55:55 +00:00
inlined-argument.ll [DebugInfo@O2][LoopVectorize] pr39024: Vectorized code linenos step through loop even after completion 2019-06-19 10:50:47 +00:00
line-header.ll
lit.local.cfg [lit] Delete empty lines at the end of lit.local.cfg NFC 2019-06-17 09:51:07 +00:00
little-endian-dump.ll
machine-outliner.ll
processes-relocations.ll
prologue_end.ll Replace "no-frame-pointer-*" function attributes with "frame-pointer" 2019-01-14 10:55:55 +00:00
return-address-signing.ll [Dwarf/AArch64] Return address signing B key dwarf support 2018-12-21 10:45:08 +00:00
struct_by_value.ll [DebugInfo] Terminate all location-lists at end of block 2019-06-10 15:23:46 +00:00
tls-at-location.ll Remove irrelevant references to legacy git repositories from 2019-01-15 16:18:52 +00:00