Change the other half of aliasGEP (which handles GEP differencing) to use DecomposeGE...
authorChris Lattner <sabre@nondot.org>
Thu, 26 Nov 2009 02:17:34 +0000 (02:17 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 26 Nov 2009 02:17:34 +0000 (02:17 +0000)
commitd84eb911a9f9c5b16fb6a737289a98651b94ce7f
tree7edf0cb4d4bdebdf3344746df69fa97f826f3362
parent4b7d0d97279c3144bd36160721fc4a8b4ff198f5
Change the other half of aliasGEP (which handles GEP differencing) to use DecomposeGEPExpression.  This dramatically simplifies and shrinks the code by eliminating the horrible CheckGEPInstructions method, fixes a miscompilation (@test3) and makes the code more aggressive.  In particular, we now handle the @test4 case, which is reduced from the SmallPtrSet constructor.  Missing this caused us to emit a variable length memset instead of a fixed size one.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89922 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Analysis/BasicAliasAnalysis.cpp
test/Analysis/BasicAA/2008-12-09-GEP-IndicesAlias.ll