summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Scalar/ADCE.cpp
Commit message (Collapse)AuthorAgeFilesLines
* eliminate VISIBILITY_HIDDEN from Transforms/Scalar. PR4861Chris Lattner2009-09-021-3/+1
| | | | llvm-svn: 80766
* Allow readonly functions to unwind exceptions. TeachDuncan Sands2009-05-061-1/+1
| | | | | | | | the optimizers about this. For example, a readonly function with no uses cannot be removed unless it is also marked nounwind. llvm-svn: 71071
* Re-commit 65975 and a fix for the problem thatDale Johannesen2009-03-041-0/+2
| | | | | | | was causing llvm-gcc to fail to build. I've verified it bootstraps now; good enough for me. llvm-svn: 66073
* Let instcombiner remove redundant dbg intrinsics.Devang Patel2008-11-191-7/+1
| | | | llvm-svn: 59658
* Cleanup debug info. assocated with deleted instructions.Devang Patel2008-11-111-2/+7
| | | | llvm-svn: 59012
* Tidy up several unbeseeming casts from pointer to intptr_t.Dan Gohman2008-09-041-1/+1
| | | | llvm-svn: 55779
* Remove the ability for ADCE to remove unreachable blocks in loop nests, ↵Owen Anderson2008-07-031-38/+0
| | | | | | because, as Eli pointed out, SimplifyCFG already does this. llvm-svn: 53104
* Use df_ext_iterator to capture the reachable set without allocating an extra ↵Owen Anderson2008-07-021-17/+14
| | | | | | | | | set. Also, move large sets and vectors out of instance variables and onto the stack, and give them more reasonable sizes. llvm-svn: 53044
* Add support to ADCE for pruning unreachable blocks. This addresses the finalOwen Anderson2008-07-021-1/+43
| | | | | | part of PR2509. llvm-svn: 53038
* Use DenseSet rather than SmallPtrSet for the alive set. Using SmallPtrSetOwen Anderson2008-07-021-2/+2
| | | | | | with a huge "size" parameter is actually quite inefficient. llvm-svn: 53034
* At Chris' suggestion, move the liveness and worklist datastructures intoOwen Anderson2008-06-231-7/+11
| | | | | | | instance variables so they can be allocated just once, and reuse the worklist as the dead list as well. llvm-svn: 52618
* Add a newline at the end of this file.Duncan Sands2008-05-291-1/+1
| | | | llvm-svn: 51680
* Replace the old ADCE implementation with a new one that more simply solvesOwen Anderson2008-05-291-457/+62
| | | | | | | | | the one case that ADCE catches that normal DCE doesn't: non-induction variable loop computations. This implementation handles this problem without using postdominators. llvm-svn: 51668
* Remove ADCE's ability to delete loops. This ability is now implemented in aOwen Anderson2008-05-161-4/+21
| | | | | | safer manner by loop deletion. llvm-svn: 51182
* Clean up the use of static and anonymous namespaces. This turned upDan Gohman2008-05-131-3/+3
| | | | | | | several things that were neither in an anonymous namespace nor static but not intended to be global. llvm-svn: 51017
* API changes for class Use size reduction, wave 1.Gabor Greif2008-04-061-3/+3
| | | | | | | | Specifically, introduction of XXX::Create methods for Users that have a potentially variable number of Uses. llvm-svn: 49277
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Integrate the readonly/readnone logic more deeplyDuncan Sands2007-12-011-2/+1
| | | | | | | | | | | | | | | into alias analysis. This meant updating the API which now has versions of the getModRefBehavior, doesNotAccessMemory and onlyReadsMemory methods which take a callsite parameter. These should be used unless the callsite is not known, since in general they can do a better job than the versions that take a function. Also, users should no longer call the version of getModRefBehavior that takes both a function and a callsite. To reduce the chance of misuse it is now protected. llvm-svn: 44487
* Readonly/readnone functions are allowed to throwDuncan Sands2007-11-221-27/+1
| | | | | | | exceptions, so don't turn invokes of them into calls. llvm-svn: 44278
* New CallInst interface to address GLIBCXX_DEBUG errors caused byDavid Greene2007-08-011-1/+1
| | | | | | | | indexing an empty std::vector. Updates to all clients. llvm-svn: 40660
* s/llvm::DominatorTreeBase::DomTreeNode/llvm::DomTreeNode/gDevang Patel2007-06-041-2/+2
| | | | llvm-svn: 37407
* s/DominatorTreeBase::Node/DominatorTreeBase:DomTreeNode/gDevang Patel2007-06-031-2/+2
| | | | llvm-svn: 37403
* Fix typo in comment.Nick Lewycky2007-05-061-1/+1
| | | | llvm-svn: 36873
* Drop 'const'Devang Patel2007-05-031-2/+2
| | | | llvm-svn: 36662
* Use 'static const char' instead of 'static const int'.Devang Patel2007-05-021-2/+2
| | | | | | | Due to darwin gcc bug, one version of darwin linker coalesces static const int, which defauts PassID based pass identification. llvm-svn: 36652
* Do not use typeinfo to identify pass in pass manager.Devang Patel2007-05-011-0/+4
| | | | llvm-svn: 36632
* Revert changes that caused breakage.Owen Anderson2007-04-181-15/+19
| | | | llvm-svn: 36255
* Use ETForest instead of DominatorTree.Owen Anderson2007-04-181-19/+15
| | | | llvm-svn: 36249
* Eliminate use of ctors that take vectors.Chris Lattner2007-02-131-2/+3
| | | | llvm-svn: 34219
* Simplify code by using value::takenameChris Lattner2007-02-111-2/+2
| | | | llvm-svn: 34176
* Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes inReid Spencer2007-02-051-1/+2
| | | | | | | the Transforms library. This reduces debug library size by 132 KB, debug binary size by 376 KB, and reduces link time for llvm tools slightly. llvm-svn: 33939
* Switch over Transforms/Scalar to use the STATISTIC macro. For each statisticChris Lattner2006-12-191-4/+5
| | | | | | | converted, we lose a static initializer. This also allows GCC to emit warnings about unused statistics. llvm-svn: 32690
* Detemplatize the Statistic class. The only type it is instantiated withChris Lattner2006-12-061-3/+3
| | | | | | is 'unsigned'. llvm-svn: 32279
* Removed #include <iostream> and replaced with llvm_* streams.Bill Wendling2006-11-261-9/+8
| | | | llvm-svn: 31923
* eliminate RegisterOpt. It does the same thing as RegisterPass.Chris Lattner2006-08-271-1/+1
| | | | llvm-svn: 29925
* Remove unneeded hook. Patch by Anton K. Thanks!Chris Lattner2006-06-021-2/+0
| | | | llvm-svn: 28664
* Silence a -pedantic warning.Chris Lattner2006-06-011-1/+1
| | | | llvm-svn: 28632
* Make iostream #inclusion explicitChris Lattner2006-01-221-0/+1
| | | | llvm-svn: 25514
* Make sure that anything using the ADCE pass pulls in the UnifyFunctionExitNodesChris Lattner2005-10-241-0/+2
| | | | | | code llvm-svn: 23931
* preserve calling conventions when hacking on codeChris Lattner2005-05-141-1/+2
| | | | llvm-svn: 22024
* Eliminate tabs and trailing spacesJeff Cohen2005-04-231-1/+1
| | | | llvm-svn: 21480
* Remove trailing whitespaceMisha Brukman2005-04-211-14/+14
| | | | llvm-svn: 21427
* Remove use of bind_objChris Lattner2005-02-221-2/+3
| | | | llvm-svn: 20276
* Do not mark obviously unreachable blocks live when processing PHI nodes,Chris Lattner2005-02-171-40/+61
| | | | | | | | | | | | and handle incomplete control dependences correctly. This fixes: Regression/Transforms/ADCE/dead-phi-edge.ll -> a missed optimization Regression/Transforms/ADCE/dead-phi-edge.ll -> a compiler crash distilled from QT4 llvm-svn: 20227
* Change indentation of a whole bunch of code, no real changes here.Chris Lattner2004-12-121-105/+105
| | | | llvm-svn: 18843
* More substantial simplifications and speedups. This makes ADCE about 20% fasterChris Lattner2004-12-121-97/+43
| | | | | | in some cases. llvm-svn: 18842
* More minor microoptimizationsChris Lattner2004-12-121-6/+4
| | | | llvm-svn: 18841
* Remove some more set operationsChris Lattner2004-12-121-6/+2
| | | | llvm-svn: 18840
* Reduce number of set operations.Chris Lattner2004-12-121-2/+1
| | | | llvm-svn: 18839
* Getting ADCE to interact well with unreachable instructions seems like a ↵Chris Lattner2004-10-171-2/+3
| | | | | | | | | | | nontrivial exercise that I'm not interested in tackling right now. Just punt and treat them like unwind's. This 'fixes' test/Regression/Transforms/ADCE/unreachable-function.ll llvm-svn: 17106
OpenPOWER on IntegriCloud