aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms/Scalar/FastDSE.cpp
AgeCommit message (Collapse)Author
2007-08-01Move FastDSE in to DeadStoreElimination.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40667 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-23Fix file header.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40440 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-16Take advantage of undefined behavior if the source program tries to GEPOwen Anderson
beyond the end of an alloca to make FastDSE faster and more aggressive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39945 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-16Add support for walking up memory def chains, which enables finding many moreOwen Anderson
dead stores on 400.perlbench. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39929 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13Handle GEPs with all-zero indices in the same way we handle pointer-pointer ↵Owen Anderson
bitcasts. Also, fix a potentia infinite loop. This brings FastDSE to parity with old DSE on 175.vpr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39839 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-13Be more aggressive in removing dead stores, and in removing instructions ↵Owen Anderson
trivially dead after DSE. This drastically improves the effect of FastDSE on kimwitu++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39819 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-12Reimplement removing stores to allocas at the end of a function. This ↵Owen Anderson
should be safe now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39790 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-12Make the condition-checking for free with non-trivial dependencies more correct.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39789 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-12Remove the end-block handling code. It was unsafe, and making it safe would ↵Owen Anderson
have resulted in falling back to the slow DSE case. I need to think some more about the right way to handle this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39788 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-12checked in as obvious,Gabor Greif
thanks Benoit Boissinot! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39774 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-12Let MemoryDependenceAnalysis take care of updating AliasAnalysis.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39769 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-11Handle the case where an entire structure is freed, and its dependency is a ↵Owen Anderson
store to a field within that structure. Also, refactor the runOnBasicBlock() function, splitting some of the special cases into separate functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39762 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-11Add support for eliminate stores to stack-allocated memory locations at the endOwen Anderson
of a function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39754 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-11Handle eliminating stores that occur right before a free.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39753 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-11Clean up a few things based on Chris' feedback.Owen Anderson
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39747 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-11Add FastDSE, a new algorithm for doing dead store elimination. This ↵Owen Anderson
algorithm is not as accurate as the current DSE, but it only a linear scan over each block, rather than quadratic. Eventually (once it has been improved somewhat), this will replace the current DSE. NOTE: This has not yet been extensively tested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38517 91177308-0d34-0410-b5e6-96231b3b80d8