llvm-mirror/test/Transforms/MergeFunc
Erik Eckstein 53b2b8eb9b Fix a crash in MergeFunctions related to ordering of weak/strong functions
The assumption, made in insert() that weak functions are always inserted after strong functions,
is only true in the first round of adding functions.
In subsequent rounds this is no longer guaranteed , because we might remove a strong function from the tree (because it's modified) and add it later,
where an equivalent weak function already exists in the tree.
This change removes the assert in insert() and explicitly enforces a weak->strong order.
This also removes the need of two separate loops in runOnModule().

llvm-svn: 271299
2016-05-31 17:20:23 +00:00
..
2011-02-08-RemoveEqual.ll Move the personality function from LandingPadInst to Function 2015-06-17 20:52:32 +00:00
2013-01-10-MergeFuncAssert.ll
address-spaces.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
alloca.ll MergeFunctions: test alloca better 2016-04-12 00:03:26 +00:00
apply_function_attributes.ll [MergeFuncs] Fix callsite attributes in thunk generation 2015-09-10 18:08:35 +00:00
call-and-invoke-with-ranges.ll [IR] Remove terminatepad 2015-12-14 18:34:23 +00:00
constant-entire-value.ll Improve the determinism of MergeFunctions 2015-08-21 23:27:24 +00:00
crash2.ll [GlobalOpt] Demote globals to locals more aggressively 2015-11-15 14:21:37 +00:00
crash.ll [opaque pointer type] Add textual IR support for explicit type parameter to gep operator 2015-03-13 18:20:45 +00:00
fold-weak.ll MergeFunctions: Don't replace a weak function use by another equivalent weak function 2015-06-09 18:19:17 +00:00
functions.ll
gep-base-type.ll [MergeFuncs] Fix bug in merging GetElementPointers 2015-09-14 15:37:48 +00:00
inttoptr-address-space.ll [MergeFuncs] Fix callsite attributes in thunk generation 2015-09-10 18:08:35 +00:00
inttoptr.ll [MergeFuncs] Fix callsite attributes in thunk generation 2015-09-10 18:08:35 +00:00
linkonce_odr.ll MergeFunctions: Impose a total order on the replacement of functions 2015-06-09 00:03:29 +00:00
merge-block-address-other-function.ll Remove Merge Functions pointer comparisons 2015-08-28 16:49:09 +00:00
merge-block-address.ll Remove Merge Functions pointer comparisons 2015-08-28 16:49:09 +00:00
merge-const-ptr-and-int.ll Comparing operands should not require the same ValueID 2015-08-26 03:02:58 +00:00
merge-different-vector-types.ll Comparing operands should not require the same ValueID 2015-08-26 03:02:58 +00:00
merge-ptr-and-int.ll
merge-weak-crash.ll Fix a crash in MergeFunctions related to ordering of weak/strong functions 2016-05-31 17:20:23 +00:00
mergefunc-struct-return.ll [opaque pointer type] Add textual IR support for explicit type parameter to load instruction 2015-02-27 21:17:42 +00:00
no-merge-block-address-different-labels.ll Remove Merge Functions pointer comparisons 2015-08-28 16:49:09 +00:00
no-merge-block-address-other-function.ll Remove Merge Functions pointer comparisons 2015-08-28 16:49:09 +00:00
no-merge-ptr-different-sizes.ll Comparing operands should not require the same ValueID 2015-08-26 03:02:58 +00:00
no-merge-ptr-int-different-values.ll Comparing operands should not require the same ValueID 2015-08-26 03:02:58 +00:00
phi-check-blocks.ll Functions with differing phis should not be merged. 2016-05-20 18:39:11 +00:00
phi-speculation1.ll
phi-speculation2.ll
ptr-int-transitivity-1.ll
ptr-int-transitivity-2.ll
ptr-int-transitivity-3.ll
ranges-multiple.ll Remove Merge Functions pointer comparisons 2015-08-28 16:49:09 +00:00
ranges.ll Fix a bunch of trivial cases of 'CHECK[^:]*$' in the tests. NFCI 2015-08-10 19:01:27 +00:00
self-referential-global.ll Fix mergefunc infinite loop 2015-07-15 21:51:33 +00:00
too-small.ll
undef-different-types.ll Comparing operands should not require the same ValueID 2015-08-26 03:02:58 +00:00
vector-GEP-crash.ll
vector.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
vectors-and-arrays.ll