Handle allocations that, even after removing dead uses, still have more than
authorChris Lattner <sabre@nondot.org>
Mon, 24 Oct 2005 06:35:18 +0000 (06:35 +0000)
committerChris Lattner <sabre@nondot.org>
Mon, 24 Oct 2005 06:35:18 +0000 (06:35 +0000)
commit39387a5c93053dc54bcc3a17a65dcc886534f14e
treea56eafddde91677fee0acdb2302c45d0fe34bdca
parent18e78bb09eb04df4833f869357757fa379b13db9
Handle allocations that, even after removing dead uses, still have more than
one use (but one is a cast).  This handles the very common case of:

 X = alloc [n x byte]
 Y = cast X to somethingbetter
 seteq X, null

In order to avoid infinite looping when there are multiple casts, we only
allow this if the xform is strictly increasing the alignment of the
allocation.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23961 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Transforms/Scalar/InstructionCombining.cpp