aboutsummaryrefslogtreecommitdiff
path: root/unittests/Support/ConstantRangeTest.cpp
AgeCommit message (Collapse)Author
2009-07-22cast signed APInt constructor params to uint64_t to suppress signedness warningRyan Flynn
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76744 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-19Fix ConstantRange::unionWith. Also make it work a little hard in some cases toNick Lewycky
return the smallest union of two ranges instead of just any range that happens to contain the union. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76360 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-18Replace intersectWith with maximalIntersectWith. The latter guarantees thatNick Lewycky
all values belonging to the intersection will belong to the resulting range. The former was inconsistent about that point (either way is fine, just pick one.) This is part of PR4545. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76289 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-13Fix an error in ConstantRange::getSignedMax on wrapped ranges. Thanks onceNick Lewycky
again to Daniel Dunbar and KLEE! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75449 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-13'i8 full-range' sign extended to i16 should equal [-128, 128) not [-128, 127).Nick Lewycky
Found by Daniel Dunbar and KLEE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75448 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-13Multiply was very wrong for wrapped ranges. This supplies a half-fix that willNick Lewycky
generally return Full on all wrapped inputs. "Fixes" PR4545. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75444 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-13Fix a bug summing two full sets. The overflow checking doesn't handle sets asNick Lewycky
large as the full set, only those one size smaller. Thanks to Daniel Dunbar who found this bug using Klee! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75443 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-12Implement udiv for ConstantRanges.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75413 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-12This is not overly conservative.Nick Lewycky
Some = [10, 2730). A subset of that is [1024..2048) which covers every possible 10-bit pattern. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75411 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-12Implement ConstantRange::multiply based on the code in LoopVR.Nick Lewycky
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75410 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-11Fix handling of max and full set.Nick Lewycky
A full set is a constant range that represents any number. If you take the umax of that and [5, 10) you end up with [5, INT_MAX] because the values less than 5 would be umax's against a value which is at least 5. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75372 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-11Break the world's largest unit test down a few logical lines. No semanticNick Lewycky
changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75369 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-09Revert the part of 75177 that split ConstantRange into two classes, andDan Gohman
merge the new functionality and unittests into ConstantRange. Thanks to Nick Lewycky for pointing out that it isn't necessary to have two separate classes here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75191 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-09Add a ConstantSignedRange class, which does for signed integersDan Gohman
what ConstantRange does for unsigned integers. Factor out a common base class for common functionality. Add some new functions for performing arithmetic on constant ranges. Some of these are currently just stubbed out with conservative implementations. Add unittests for ConstantRange and ConstantSignedRange. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75177 91177308-0d34-0410-b5e6-96231b3b80d8