llvm-project/llvm/test/DebugInfo
Frederic Riss 0e9a50f5b5 DwarfAccelTable: Fix handling of hash collisions.
It turns out accelerator tables where totally broken if they contained
entries with colliding hashes. The failure mode is pretty bad, as it not
only impacted the colliding entries, but would basically make all the
entries after the first hash collision pointing in the wrong place.

The testcase uses the symbol names that where found to collide during a
clang build.

From a performance point of view, the patch adds a sort and a linear
walk over each bucket contents. While it has a measurable impact on the
accelerator table emission, it's not showing up significantly in clang
profiles (and I'd argue that correctness is priceless :-)).

llvm-svn: 231732
2015-03-10 00:46:31 +00:00
..
AArch64 DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
ARM DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +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 DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
PDB [llvm-pdbdump] Display full enum definitions. 2015-03-04 06:09:53 +00:00
PowerPC DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
Sparc DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
SystemZ DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
X86 Use a MapVector instead of an extra sort. 2015-03-09 22:08:37 +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: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
2009-11-05-DeadGlobalVariable.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +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: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
2010-01-05-DbgScope.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +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: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
2010-03-24-MemberFn.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
2010-03-30-InvalidDbgInfoCrash.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
2010-04-06-NestedFnDbgInfo.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
2010-04-19-FramePtr.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
2010-05-03-DisableFramePtr.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
2010-05-03-OriginDIE.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
2010-05-10-MultipleCU.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
2010-06-29-InlinedFnLocalVar.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
2010-07-19-Crash.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
2010-10-01-crash.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
PR20038.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
accel-table-hash-collisions.ll DwarfAccelTable: Fix handling of hash collisions. 2015-03-10 00:46:31 +00:00
arm-relocs.test Add support for the R_ARM_ABS32 relocation. 2014-04-03 02:27:00 +00:00
array.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +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 DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +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: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
debuginfofinder-multiple-cu.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +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 Spell correct (s/begining/beginning/) 2013-06-19 21:42:05 +00:00
dwarfdump-dump-flags.test
dwarfdump-line-dwo.test llvm-dwarfdump: Support for debug_line.dwo section for file names for type units under fission. 2014-02-24 23:58:54 +00:00
dwarfdump-objc.test [dwarfdump] Prettyprint DW_AT_APPLE_property_attribute bitfield values. 2014-10-10 15:51:10 +00:00
dwarfdump-pubnames.test DebugInfo: Make pubnames header printing similar to unit header printing 2013-11-01 17:53:30 +00:00
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 llvm-dwarfdump: support for emitting only the debug_types section using -debug-dump 2013-11-19 00:29:42 +00:00
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 DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +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-debugloc.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
incorrect-variable-debugloc1.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
inheritance.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
inline-debug-info-multiret.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
inline-debug-info.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
inline-no-debug-info.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
inline-scopes.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +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 DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
lto-comp-dir.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
member-order.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +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.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
namespace_function_definition.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
namespace_inline_function_definition.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 DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +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: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
tu-composite.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +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 DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +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: Move new hierarchy into place 2015-03-03 17:24:31 +00:00
version.ll DebugInfo: Move new hierarchy into place 2015-03-03 17:24:31 +00:00