Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Now with fewer extraneous semicolons! | Owen Anderson | 2010-10-07 | 1 | -1/+1 |
| | | | | llvm-svn: 115996 | ||||
* | It is possible, under specific circumstances involving ptrtoint ↵ | Owen Anderson | 2010-09-16 | 1 | -3/+7 |
| | | | | | | | | | | | | ConstantExpr's, for LVI to end up trying to merge a Constant into a ConstantRange. Handle this conservatively for now, rather than asserting. The testcase is more complex that I would like, but the manifestation of the problem is sensitive to iteration orders and the state of the LVI cache, and I have not been able to reproduce it with manually constructed or simplified cases. Fixes PR8162. llvm-svn: 114103 | ||||
* | Clean up some of the PassRegistry implementation, and pImpl-ize it to reduce ↵ | Owen Anderson | 2010-09-07 | 1 | -0/+2 |
| | | | | | | | | #include clutter and exposing internal details. llvm-svn: 113252 | ||||
* | Add completely hokey binary-and and binary-or operations to ConstantRange and | Nick Lewycky | 2010-09-07 | 1 | -0/+6 |
| | | | | | | teach LazyValueInfo to use them. llvm-svn: 113196 | ||||
* | zap dead code. | Chris Lattner | 2010-09-04 | 1 | -4/+0 |
| | | | | llvm-svn: 113073 | ||||
* | Add support for simplifying a load from a computed value to a load from a ↵ | Owen Anderson | 2010-09-03 | 1 | -2/+11 |
| | | | | | | | | global when it is provable that they're equivalent. This fixes PR4855. llvm-svn: 112994 | ||||
* | Remove incorrect and poorly tested code for trying to reason about values on ↵ | Owen Anderson | 2010-09-02 | 1 | -16/+2 |
| | | | | | | | | default edges of switches. Just return the conservatively correct answer. llvm-svn: 112876 | ||||
* | Fix a bug in LazyValueInfo that CorrelatedValuePropagation exposed: In the ↵ | Owen Anderson | 2010-09-02 | 1 | -4/+0 |
| | | | | | | | | LVI lattice, undef and the full set ConstantRange should not be treated as equivalent. llvm-svn: 112843 | ||||
* | It is possible to try to merge a not-constant with a constantrage, when ↵ | Owen Anderson | 2010-08-30 | 1 | -2/+3 |
| | | | | | | | | | dealing with ptrtoint ConstantExpr's. Unfortunately, the only testcase I have for this is huge and doesn't reduce well because the error is sensitive to iteration-order issues, since the problem only occurs when merging values in a particular order. llvm-svn: 112489 | ||||
* | Improve the precision of getConstant(). | Owen Anderson | 2010-08-27 | 1 | -0/+5 |
| | | | | llvm-svn: 112323 | ||||
* | Use LVI to eliminate conditional branches where we've tested a related ↵ | Owen Anderson | 2010-08-27 | 1 | -1/+2 |
| | | | | | | | | condition previously. Update tests for this change. This fixes PR5652. llvm-svn: 112270 | ||||
* | In the default address space, any GEP off of null results in a trap value if ↵ | Owen Anderson | 2010-08-25 | 1 | -4/+5 |
| | | | | | | | | | you try to load it. Thus, any load in the default address space that completes implies that the base value that it GEP'd from was not null. llvm-svn: 112015 | ||||
* | NULL loads are only invalid in the default address space. | Owen Anderson | 2010-08-24 | 1 | -1/+1 |
| | | | | llvm-svn: 111972 | ||||
* | Add support for inferring values for the default cases of switches. | Owen Anderson | 2010-08-24 | 1 | -3/+22 |
| | | | | llvm-svn: 111971 | ||||
* | Add support for inferring that a load from a pointer implies that it is not ↵ | Owen Anderson | 2010-08-24 | 1 | -4/+17 |
| | | | | | | null. llvm-svn: 111959 | ||||
* | Don't assume that all constants with integer types are ConstantInts. | Owen Anderson | 2010-08-24 | 1 | -2/+11 |
| | | | | llvm-svn: 111906 | ||||
* | Use ConstantRange to propagate information through value definitions. | Owen Anderson | 2010-08-18 | 1 | -4/+83 |
| | | | | llvm-svn: 111425 | ||||
* | Inform LazyValueInfo whenever a block is deleted, to avoid dangling pointer ↵ | Owen Anderson | 2010-08-18 | 1 | -21/+47 |
| | | | | | | issues. llvm-svn: 111382 | ||||
* | Fix another iterator invalidation that caused a *really* nasty ↵ | Owen Anderson | 2010-08-16 | 1 | -6/+7 |
| | | | | | | miscompilation in 403.gcc. llvm-svn: 111210 | ||||
* | Fix a subtle use-after-free issue. | Owen Anderson | 2010-08-11 | 1 | -1/+4 |
| | | | | llvm-svn: 110863 | ||||
* | Improve indentation. | Owen Anderson | 2010-08-11 | 1 | -27/+28 |
| | | | | llvm-svn: 110778 | ||||
* | Now that we're using ConstantRange to represent potential values, make use ↵ | Owen Anderson | 2010-08-10 | 1 | -8/+35 |
| | | | | | | | | of that represenation to create constraints from comparisons other than eq/neq. llvm-svn: 110742 | ||||
* | Switch over to using ConstantRange to track integral values. | Owen Anderson | 2010-08-10 | 1 | -7/+44 |
| | | | | llvm-svn: 110714 | ||||
* | Add ConstantRange information to the debugging output. | Owen Anderson | 2010-08-09 | 1 | -0/+3 |
| | | | | llvm-svn: 110598 | ||||
* | Add the beginnings of infrastructure for range tracking. | Owen Anderson | 2010-08-05 | 1 | -6/+60 |
| | | | | llvm-svn: 110388 | ||||
* | Split the tag and value members of LVILatticeVal in preparation for ↵ | Owen Anderson | 2010-08-05 | 1 | -14/+14 |
| | | | | | | expanding the lattice to something that won't fit in two bits. llvm-svn: 110383 | ||||
* | Add an initial implementation of PHI translation for LazyValueInfo. This ↵ | Owen Anderson | 2010-07-30 | 1 | -35/+72 |
| | | | | | | | | involves rolling back some of my earlier data structure improvements until I can ensure that there are no iterator invalidation problems. llvm-svn: 109935 | ||||
* | Revert my last two patches to LVI, which recent changes have exposed a ↵ | Owen Anderson | 2010-07-30 | 1 | -56/+94 |
| | | | | | | miscompilation in. llvm-svn: 109889 | ||||
* | Pass the queried value by argument rather than in a member, in preparation ↵ | Owen Anderson | 2010-07-28 | 1 | -36/+25 |
| | | | | | | for supporting PHI translation. llvm-svn: 109701 | ||||
* | Get rid of LVIQuery as a distinct data structure, so that we don't have to ↵ | Owen Anderson | 2010-07-28 | 1 | -93/+66 |
| | | | | | | initialize a new set of maps on every query. llvm-svn: 109679 | ||||
* | Rearrange several datastructures in LazyValueInfo to improve compile time. | Owen Anderson | 2010-07-27 | 1 | -69/+35 |
| | | | | | | This is still not perfect, but better than it was before. llvm-svn: 109563 | ||||
* | Add an initial implementation of LazyValueInfo updating for JumpThreading. ↵ | Owen Anderson | 2010-07-26 | 1 | -4/+89 |
| | | | | | | Disabled for now. llvm-svn: 109424 | ||||
* | Fix batch of converting RegisterPass<> to INTIALIZE_PASS(). | Owen Anderson | 2010-07-21 | 1 | -2/+2 |
| | | | | llvm-svn: 109045 | ||||
* | Convert debug messages to use dbgs(). Generally this means | David Greene | 2009-12-23 | 1 | -7/+7 |
| | | | | | | s/errs/dbgs/g except for certain special cases. llvm-svn: 92040 | ||||
* | typo spotted by duncan. | Chris Lattner | 2009-11-16 | 1 | -1/+1 |
| | | | | llvm-svn: 88884 | ||||
* | teach LVI to infer edge information from switch instructions. | Chris Lattner | 2009-11-15 | 1 | -6/+24 |
| | | | | | | | This allows JT to eliminate a ton of infeasible edges when handling code like the templates in PatternMatch.h llvm-svn: 88869 | ||||
* | fix a logic error that would cause LVI-JT to miscompile | Chris Lattner | 2009-11-15 | 1 | -1/+1 |
| | | | | | | some conditionals llvm-svn: 88868 | ||||
* | implement the first stab at caching queries. This isn't correct | Chris Lattner | 2009-11-15 | 1 | -13/+97 |
| | | | | | | | (because the invalidation logic is missing) but LVI isn't enabled by default anyway. llvm-svn: 88867 | ||||
* | refactor a bunch of code forming the new LazyValueInfoCache | Chris Lattner | 2009-11-15 | 1 | -94/+172 |
| | | | | | | and LVIQuery classes, no functionality change. llvm-svn: 88866 | ||||
* | various fixes to the lattice transfer functions. | Chris Lattner | 2009-11-12 | 1 | -6/+27 |
| | | | | llvm-svn: 86952 | ||||
* | Add a new getPredicateOnEdge method which returns more rich information for | Chris Lattner | 2009-11-12 | 1 | -17/+85 |
| | | | | | | | constant constraints. Improve the LVI lattice to include inequality constraints. llvm-svn: 86950 | ||||
* | expose edge information and switch j-t to use it. | Chris Lattner | 2009-11-12 | 1 | -0/+21 |
| | | | | llvm-svn: 86920 | ||||
* | move some stuff into DEBUG's and turn on lazy-value-info for | Chris Lattner | 2009-11-12 | 1 | -3/+5 |
| | | | | | | the basic.ll testcase. llvm-svn: 86918 | ||||
* | make LazyValueInfo actually to some stuff. This isn't very tested but improves | Chris Lattner | 2009-11-11 | 1 | -8/+152 |
| | | | | | | strswitch. llvm-svn: 86889 | ||||
* | stub out some LazyValueInfo interfaces, and have JumpThreading | Chris Lattner | 2009-11-11 | 1 | -1/+116 |
| | | | | | | | | start using them in a trivial way when -enable-jump-threading-lvi is passed. enable-jump-threading-lvi will be my playground for awhile. llvm-svn: 86789 | ||||
* | Stub out a new lazy value info pass, which will eventually | Chris Lattner | 2009-11-11 | 1 | -0/+31 |
vend value constraint information to the optimizer. llvm-svn: 86767 |