1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 03:23:01 +02:00
llvm-mirror/test/DebugInfo/X86
Keno Fischer c41229c60a [Verifier] Check that debug values have proper size
Summary:
Teach the Verifier to make sure that the storage size given to llvm.dbg.declare
or the value size given to llvm.dbg.value agree with what is declared in
DebugInfo. This is implicitly assumed in a number of passes (e.g. in SROA).
Additionally this catches a number of common mistakes, such as passing a
pointer when a value was intended or vice versa.

One complication comes from stack coloring which modifies the original IR when
it merges allocas in order to make sure that if AA falls back to the IR it gets
the correct result. However, given this new invariant, indiscriminately
replacing one alloca by a different (differently sized one) is no longer valid.
Fix this by just undefing out any use of the alloca in a dbg.declare in this
case.

Additionally, I had to fix a number of test cases. Of particular note:
- I regenerated dbg-changes-codegen-branch-folding.ll from the given source as
  it was affected by the bug fixed in r256077
- two-cus-from-same-file.ll was changed to avoid having a variable-typed debug
  variable as that would depend on the target, even though this test is
  supposed to be generic
- I had to manually declared size/align for reference type. See also the
  discussion for D14275/r253186.
- fpstack-debuginstr-kill.ll required changing `double` to `long double`
- most others were just a question of adding OP_deref

Reviewers: aprantl
Differential Revision: http://reviews.llvm.org/D14276

llvm-svn: 257105
2016-01-07 22:18:37 +00:00
..
2010-04-13-PubType.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
2011-09-26-GlobalVarContext.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
2011-12-16-BadStructRef.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
aligned_stack_var.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
arange-and-stub.ll Stop producing .data.rel sections. 2015-11-18 06:02:15 +00:00
arange.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
arguments.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
array2.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
array.ll Clean up the processing of dbg.value in various places 2015-12-19 02:02:44 +00:00
asm-macro-line-number.s IAS: Use the root macro instanciation for location 2015-06-25 21:57:33 +00:00
bbjoin.ll [Verifier] Check that debug values have proper size 2016-01-07 22:18:37 +00:00
bitfields.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
block-capture.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
byvalstruct.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
c-type-units.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
coff_debug_info_type.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
coff_relative_names.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
concrete_out_of_line.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
constant-aggregate.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
cu-ranges-odr.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
cu-ranges.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
data_member_location.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
dbg_value_direct.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dbg-asm.s MC: correct DWARF line info for PE/COFF 2014-09-06 19:57:48 +00:00
dbg-byval-parameter.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dbg-const-int.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dbg-const.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dbg-declare-arg.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dbg-declare.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dbg-file-name.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dbg-i128-const.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dbg-merge-loc-entry.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dbg-prolog-end.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dbg-subrange.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dbg-value-const-byref.ll Clean up the processing of dbg.value in various places 2015-12-19 02:02:44 +00:00
dbg-value-dag-combine.ll [Verifier] Check that debug values have proper size 2016-01-07 22:18:37 +00:00
dbg-value-inlined-parameter.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dbg-value-isel.ll [Verifier] Check that debug values have proper size 2016-01-07 22:18:37 +00:00
dbg-value-location.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dbg-value-range.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dbg-value-terminator.ll [Verifier] Check that debug values have proper size 2016-01-07 22:18:37 +00:00
debug_frame.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
debug-dead-local-var.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
debug-info-access.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
debug-info-block-captured-self.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
debug-info-blocks.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
debug-info-packed-struct.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
debug-info-static-member.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
debug-loc-asan.ll Clean up the processing of dbg.value in various places 2015-12-19 02:02:44 +00:00
debug-loc-empty-entries.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
debug-loc-offset.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
debug-macro.ll Added support for macro emission in dwarf (supporting DWARF version 4). 2016-01-07 14:28:20 +00:00
debug-ranges-offset.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
debugger-tune.ll Turn off lldb debug tuning by default for FreeBSD 2016-01-07 22:09:12 +00:00
decl-derived-member.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
deleted-bit-piece.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
DIModule.ll Debug info: Add dwarf backend support for DIModule. 2015-06-30 02:13:04 +00:00
DIModuleContext.ll Debug Info: Allow a DIModule to appear as the scope of other entities. 2015-09-10 17:13:58 +00:00
discriminator.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
DW_AT_byte_size.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
DW_AT_linkage_name.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
DW_AT_location-reference.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
DW_AT_object_pointer.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
DW_AT_specification.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
DW_AT_stmt_list_sec_offset.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dw_op_minus.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
DW_TAG_friend.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
dwarf-aranges-no-dwarf-labels.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dwarf-aranges.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dwarf-linkage-names.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dwarf-public-names.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
dwarf-pubnames-split.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
earlydup-crash.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
elf-names.ll [Verifier] Check that debug values have proper size 2016-01-07 22:18:37 +00:00
empty-and-one-elem-array.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
empty-array.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
empty.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
ending-run.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
enum-class.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
enum-fwd-decl.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
externaltyperef.ll Debug Info: Add basic support for external types references. 2015-07-15 17:01:41 +00:00
fission-cu.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
fission-hash.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
fission-inline.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
fission-ranges.ll Recommit LiveDebugValues pass after fixing a couple of minor issues. 2015-12-16 11:09:48 +00:00
float_const.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
formal_parameter.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
frame-register.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
generate-odr-hash.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
ghost-sdnode-dbgvalues.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
gmlt.test llvm/test/DebugInfo/X86/gmlt.test: Get rid of %llc_dwarf. It should not be used with -mtriple. 2014-10-01 00:29:16 +00:00
gnu-public-names-empty.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
gnu-public-names.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
header.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
inline-member-function.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
inline-seldag-test.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
inlined-formal-parameter.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
inlined-indirect-value.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
InlinedFnLocalVar.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
instcombine-instrinsics.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
lexical_block.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
line-info.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
line.test Refactor test to be reused across architectures 2015-01-29 20:21:24 +00:00
linkage-name.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
lit.local.cfg Reduce verbiage of lit.local.cfg files 2014-06-09 22:42:55 +00:00
live-debug-values.ll Fix PR24563 (LiveDebugVariables unconditionally propagates all DBG_VALUEs) 2015-12-21 20:03:00 +00:00
low-pc-cu.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
main-file-name.s
memberfnptr.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
mi-print.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
misched-dbg-value.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
missing-file-line.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
multiple-aranges.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
multiple-at-const-val.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
nodebug_with_debug_loc.ll [Verifier] Check that debug values have proper size 2016-01-07 22:18:37 +00:00
nondefault-subrange-array.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
nophysreg.ll [Verifier] Check that debug values have proper size 2016-01-07 22:18:37 +00:00
objc-fwd-decl.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
objc-property-void.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
op_deref.ll Clean up the processing of dbg.value in various places 2015-12-19 02:02:44 +00:00
parameters.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
pieces-1.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
pieces-2.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
pieces-3.ll Recommit LiveDebugValues pass after fixing a couple of minor issues. 2015-12-16 11:09:48 +00:00
pointer-type-size.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
pr11300.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
pr12831.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
pr13303.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
pr19307.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
processes-relocations.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
prologue-stack.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
ref_addr_relocation.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
reference-argument.ll Clean up the processing of dbg.value in various places 2015-12-19 02:02:44 +00:00
rvalue-ref.ll [Verifier] Check that debug values have proper size 2016-01-07 22:18:37 +00:00
safestack-byval.ll llvm/test/DebugInfo/X86/safestack-byval.ll: Give an explicit triple for now. It crashes for targeting *-win32. 2015-12-01 10:07:41 +00:00
sret.ll [Verifier] Check that debug values have proper size 2016-01-07 22:18:37 +00:00
sroasplit-1.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
sroasplit-2.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
sroasplit-3.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
sroasplit-4.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
sroasplit-5.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
stmt-list-multiple-compile-units.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
stmt-list.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
stringpool.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
struct-loc.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
subrange-type.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
subreg.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
subregisters.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
template.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
tls.ll Turn off lldb debug tuning by default for FreeBSD 2016-01-07 22:09:12 +00:00
type_units_with_addresses.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
union-const.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
union-template.ll DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
vector.ll DI: Disallow uniquable DICompileUnits 2015-08-03 17:26:41 +00:00
vla.ll Clean up the processing of dbg.value in various places 2015-12-19 02:02:44 +00:00