forked from OSchip/llvm-project
9dc042a0b6
Summary: When comparing basic blocks, there is an additional check that two Value*'s should have the same ID, which interferes with merging equivalent constants of different kinds (such as a ConstantInt and a ConstantPointerNull in the included testcase). The cmpValues function already ensures that the two values in each function are the same, so removing this check should not cause incorrect merging. Also, the type comparison is redundant, based on reviewing the code and testing on the test suite and several large LTO bitcodes. Author: jrkoenig Reviewers: nlewycky, jfb, dschuff Subscribers: llvm-commits Differential revision: http://reviews.llvm.org/D12302 llvm-svn: 246001 |
||
---|---|---|
.. | ||
2011-02-08-RemoveEqual.ll | ||
2013-01-10-MergeFuncAssert.ll | ||
address-spaces.ll | ||
alloca.ll | ||
apply_function_attributes.ll | ||
call-and-invoke-with-ranges.ll | ||
constant-entire-value.ll | ||
crash.ll | ||
fold-weak.ll | ||
functions.ll | ||
inttoptr-address-space.ll | ||
inttoptr.ll | ||
linkonce_odr.ll | ||
merge-const-ptr-and-int.ll | ||
merge-different-vector-types.ll | ||
merge-ptr-and-int.ll | ||
mergefunc-struct-return.ll | ||
no-merge-ptr-different-sizes.ll | ||
no-merge-ptr-int-different-values.ll | ||
phi-speculation1.ll | ||
phi-speculation2.ll | ||
ptr-int-transitivity-1.ll | ||
ptr-int-transitivity-2.ll | ||
ptr-int-transitivity-3.ll | ||
ranges.ll | ||
self-referential-global.ll | ||
too-small.ll | ||
undef-different-types.ll | ||
vector-GEP-crash.ll | ||
vector.ll | ||
vectors-and-arrays.ll |