aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Analysis/Dominators.h
Commit message (Collapse)AuthorAgeFilesLines
* Tidy up several unbeseeming casts from pointer to intptr_t.Dan Gohman2008-09-041-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55779 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix dom tree compare. Don't forget to compare children!Devang Patel2008-07-011-24/+36
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52984 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix typos in comments. Devang Patel2008-07-011-3/+3
| | | | | | | Thanks for the feedback! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52978 91177308-0d34-0410-b5e6-96231b3b80d8
* Add dom info verifier.Devang Patel2008-07-011-5/+108
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52967 91177308-0d34-0410-b5e6-96231b3b80d8
* Add an isReachableFromEntry method.Owen Anderson2008-06-301-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52916 91177308-0d34-0410-b5e6-96231b3b80d8
* Check empty dominance frontier.Devang Patel2008-06-181-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52437 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix more -Wshorten-64-to-32 warnings.Evan Cheng2008-05-051-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50659 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR1098 by correcting the postdominators analysis.Owen Anderson2008-05-041-9/+1
| | | | | | | Patch by Florian Brandner. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50628 91177308-0d34-0410-b5e6-96231b3b80d8
* Major repairs to the post-dominators implementation. Patch from Florian ↵Owen Anderson2008-04-161-7/+17
| | | | | | Brandner! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49768 91177308-0d34-0410-b5e6-96231b3b80d8
* Make GVN more memory efficient, particularly on code that contains a large ↵Owen Anderson2008-04-071-0/+4
| | | | | | | | | number of allocations, which GVN can't optimize anyways. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49329 91177308-0d34-0410-b5e6-96231b3b80d8
* Add explicit keywords.Dan Gohman2008-03-251-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48801 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't include <map> in Pass.h, which doesn't need it. This requiresDan Gohman2008-03-211-0/+1
| | | | | | | adding <map> to many files that actually do need it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48667 91177308-0d34-0410-b5e6-96231b3b80d8
* PassInfo keep tracks whether a pass is an analysis pass or not.Devang Patel2008-03-191-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48554 91177308-0d34-0410-b5e6-96231b3b80d8
* Do not use virtual function to identify an analysis pass.Devang Patel2008-03-191-11/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48520 91177308-0d34-0410-b5e6-96231b3b80d8
* Identify Analysis pass.Devang Patel2008-03-181-0/+9
| | | | | | | | Do not run analysis pass again if analysis info is still available. This fixes PR1441. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48476 91177308-0d34-0410-b5e6-96231b3b80d8
* Add -analyze support to postdomtree.Dan Gohman2008-02-271-1/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47680 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't attribute in file headers anymore. See llvmdev for theChris Lattner2007-12-291-2/+2
| | | | | | | | discussion of this change. Boy are my fingers tired. ;-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45411 91177308-0d34-0410-b5e6-96231b3b80d8
* Add accessor for getting the underlying templated type. This is necessary ↵Owen Anderson2007-11-271-0/+2
| | | | | | for templated LoopInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44347 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove meaningless qualifiers from return types, avoiding compiler warnings.Dan Gohman2007-11-191-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44240 91177308-0d34-0410-b5e6-96231b3b80d8
* Some fixes to get MachineDomTree working better.Owen Anderson2007-10-311-11/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43541 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a first attempt at dominator information for MBB's. Use with caution: ↵Owen Anderson2007-10-291-7/+7
| | | | | | this has been tested to compile. It has not yet been confirmed to generate correct analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43438 91177308-0d34-0410-b5e6-96231b3b80d8
* Make it possible for DomTreeBase to be constructed from MachineFunction's as ↵Owen Anderson2007-10-251-9/+10
| | | | | | well as just Function's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43321 91177308-0d34-0410-b5e6-96231b3b80d8
* Make DomTreeBase not a FunctionPass.Owen Anderson2007-10-231-9/+22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43263 91177308-0d34-0410-b5e6-96231b3b80d8
* Unbreak the build. Forgot to commit this file.Owen Anderson2007-10-231-39/+176
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43260 91177308-0d34-0410-b5e6-96231b3b80d8
* Move Split<...>() into DomTreeBase. This should make the #include's of ↵Owen Anderson2007-10-181-15/+96
| | | | | | | | | | | DominatorInternals.h in CodeExtractor and LoopSimplify unnecessary. Hartmut, could you confirm that this fixes the issues you were seeing? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43115 91177308-0d34-0410-b5e6-96231b3b80d8
* Updated VC++ build system.Hartmut Kaiser2007-10-171-2/+2
| | | | | | | | | | | | | | | | Silenced some VC warnings. I'm getting linker errors, though: unresolved externals: llvm::Split<class llvm::BasicBlock *,struct llvm::GraphTraits<class llvm::BasicBlock *> >(class llvm::DominatorTreeBase<class llvm::BasicBlock> &,class llvm::BasicBlock *) and llvm::Split<struct llvm::Inverse<class llvm::BasicBlock *>,struct llvm::GraphTraits<struct llvm::Inverse<class llvm::BasicBlock *> > >(class llvm::DominatorTreeBase<class llvm::BasicBlock> &,class llvm::BasicBlock *) Where are these defined? git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43073 91177308-0d34-0410-b5e6-96231b3b80d8
* Move splitBlock into DomTreeBase from DomTree.Owen Anderson2007-10-171-5/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43059 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some formatting.Owen Anderson2007-10-161-15/+21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43049 91177308-0d34-0410-b5e6-96231b3b80d8
* Template DominatorTreeBase by node type. This is the next major step towardsOwen Anderson2007-10-161-58/+245
| | | | | | | having dominator information on MBB's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43036 91177308-0d34-0410-b5e6-96231b3b80d8
* Begin the process of allowing DomTree on MBB's. Step One: template ↵Owen Anderson2007-10-081-19/+50
| | | | | | DomTreeNode by making it a typedef of a templated DomTreeNodeBase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42743 91177308-0d34-0410-b5e6-96231b3b80d8
* Completely merge the implementation details of DomTree and PostDomTree.Owen Anderson2007-10-031-3/+3
| | | | | | | Also, add a FIXME for a bug in PostDomTree calculation I noticed while writing this, git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42593 91177308-0d34-0410-b5e6-96231b3b80d8
* Template-ize more of the DomTree internal implementation details. Only the ↵Owen Anderson2007-09-301-4/+9
| | | | | | calculate() methods for DomTree and PostDomTree remain to be merged/template-ized. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42476 91177308-0d34-0410-b5e6-96231b3b80d8
* Have PostDomTree use the newly templated DFSPass.Owen Anderson2007-09-281-3/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42427 91177308-0d34-0410-b5e6-96231b3b80d8
* Convert DFSPass into a templated friend function, in preparation for making ↵Owen Anderson2007-09-271-1/+2
| | | | | | it common to DomTree and PostDomTree. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42420 91177308-0d34-0410-b5e6-96231b3b80d8
* Merge significant portions of the DomTree and PostDomTree implementations.Owen Anderson2007-09-241-4/+5
| | | | | | | The two remaining unmerged parts are DFSPass, and the Calculate(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42255 91177308-0d34-0410-b5e6-96231b3b80d8
* Move DFSPass back down into DominatorTree. I need to figure out what the ↵Owen Anderson2007-09-231-1/+2
| | | | | | | | | difference is between it and the PostDomTree version first. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42250 91177308-0d34-0410-b5e6-96231b3b80d8
* Factor the dominator tree calculation details out into ↵Owen Anderson2007-09-231-10/+14
| | | | | | | | | | | | | | DominatorCalculation.h. This change is not useful in and of itself, but it lays the groundwork for combining the dominator and postdominator implementations. Also, factor a few methods that are common to DominatorTree and PostDominatorTree into DominatorTreeBase. Again, this will make merging the two calculation methods simpler in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42248 91177308-0d34-0410-b5e6-96231b3b80d8
* Simplify.Nick Lewycky2007-08-181-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41167 91177308-0d34-0410-b5e6-96231b3b80d8
* When one branch of condition is eliminated then head of the otherDevang Patel2007-08-171-0/+20
| | | | | | | | branch is not necessary immediate dominators of merge blcok in all cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41144 91177308-0d34-0410-b5e6-96231b3b80d8
* No need to use iterator to erase basic block.Devang Patel2007-08-141-3/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41074 91177308-0d34-0410-b5e6-96231b3b80d8
* Add methods to erase basic block entry.Devang Patel2007-08-131-0/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41052 91177308-0d34-0410-b5e6-96231b3b80d8
* Change casts from old style to new style. This helps document the detailsReid Spencer2007-08-121-2/+2
| | | | | | | | better, gives the compiler a chance to validate the cast and reduces warnings if the user turns on -Wold-style-cast option. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41033 91177308-0d34-0410-b5e6-96231b3b80d8
* reimplement dfs number computation to be significantly faster. This speeds upChris Lattner2007-08-081-8/+6
| | | | | | | | natural loop canonicalization (which does many cfg xforms) by 4.3x, for example. This also fixes a bug in postdom dfnumber computation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40920 91177308-0d34-0410-b5e6-96231b3b80d8
* Various random cleanups, add two accessors to DomTreeNode: ↵Chris Lattner2007-08-061-10/+15
| | | | | | getDFSNumIn/getDFSNumOut git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40856 91177308-0d34-0410-b5e6-96231b3b80d8
* Switch the internal "Info" map from an std::map to a DenseMap. ThisChris Lattner2007-08-051-2/+2
| | | | | | | | | | speeds up idom by about 45% and postidom by about 33%. Some extra precautions must be taken not to invalidate densemap iterators. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40827 91177308-0d34-0410-b5e6-96231b3b80d8
* switch the DomTreeNodes and IDoms maps in idom/postidom to a Chris Lattner2007-08-041-7/+8
| | | | | | | | | | DenseMap instead of an std::map. This speeds up postdomtree by about 25% and domtree by about 23%. It also speeds up clients, for example, domfrontier by 11%, mem2reg by 4% and ADCE by 6%. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40826 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unused method - getIDomBlock().Devang Patel2007-07-041-10/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37865 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix typo in assertion check.Devang Patel2007-07-041-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37864 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unnecessary comments.Devang Patel2007-06-281-3/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37774 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle the case when block dominates itself.Devang Patel2007-06-281-1/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37773 91177308-0d34-0410-b5e6-96231b3b80d8