aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms/Scalar/ABCD.cpp
AgeCommit message (Collapse)Author
2009-11-10Fix DenseMap iterator constness.Jeffrey Yasskin
This patch forbids implicit conversion of DenseMap::const_iterator to DenseMap::iterator which was possible because DenseMapIterator inherited (publicly) from DenseMapConstIterator. Conversion the other way around is now allowed as one may expect. The template DenseMapConstIterator is removed and the template parameter IsConst which specifies whether the iterator is constant is added to DenseMapIterator. Actually IsConst parameter is not necessary since the constness can be determined from KeyT but this is not relevant to the fix and can be addressed later. Patch by Victor Zverovich! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86636 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Small cleanups.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86499 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-09Revert my previous patch to ABCD and fix things the right way. There are ↵Owen Anderson
two problems addressed here: 1) We need to avoid processing sigma nodes as phi nodes for constraint generation. 2) We need to generate constraints for comparisons against constants properly. This includes our first working ABCD test! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86498 91177308-0d34-0410-b5e6-96231b3b80d8
2009-11-08Fix an issue where the ordering of blocks within a function could lead to ↵Owen Anderson
different constraint graphs being produced. The cause was that we were incorrectly marking sigma instructions as processed after handling the sigma-specific constraints for them, potentially neglecting to process them as normal instructions as well. Unfortunately, the testcase that inspired this still doesn't work because of a bug in the solver, which is next on the list to debug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86486 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-29Apply some cleanups. No functionality changes.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85498 91177308-0d34-0410-b5e6-96231b3b80d8
2009-10-28Add ABCD, a generalized implementation of the Elimination of Array BoundsNick Lewycky
Checks on Demand algorithm which looks at arbitrary branches instead of loop iterations. This is GSoC work by Andre Tavares with only editorial changes applied! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85382 91177308-0d34-0410-b5e6-96231b3b80d8