| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 160643
|
|
|
|
| |
llvm-svn: 160317
|
|
|
|
|
|
|
|
| |
full sets.
Make it always return APInts with the same bitwidth for the same ConstantRange bitwidth to simply clients
llvm-svn: 160294
|
|
|
|
| |
llvm-svn: 159352
|
|
|
|
| |
llvm-svn: 159319
|
|
|
|
|
|
| |
this fixes the missed optimization I was seeing in the CorrelatedValuePropagation pass
llvm-svn: 157032
|
|
|
|
| |
llvm-svn: 133648
|
|
|
|
|
|
|
|
| |
zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method
trunc(), to be const and to return a new value instead of modifying the
object in place.
llvm-svn: 121120
|
|
|
|
|
|
| |
also fixes PR8250.
llvm-svn: 114972
|
|
|
|
|
|
|
|
|
| |
Fix zeroExtend and signExtend to support empty sets, and to return the smallest
possible result set which contains the extension of each element in their
inputs. For example zext i8 [100, 10) to i16 is now [0, 256), not i16 [100, 10)
which contains 63446 members.
llvm-svn: 113187
|
|
|
|
|
|
|
|
|
| |
- remove ashr which never worked.
- fix lshr and shl and add tests.
- remove dead function "intersect1Wrapped".
- add a new sub method to subtract ranges, with test.
llvm-svn: 110861
|
|
|
|
| |
llvm-svn: 110504
|
|
|
|
| |
llvm-svn: 81102
|
|
|
|
|
|
|
| |
equality. Prefer EXPECT_EQ(foo, Full) over EXPECT_TRUE(foo.isFullSet()) because
the former will print out the contents of the constant range that failed.
llvm-svn: 81094
|
|
|
|
|
|
|
|
| |
This can break when there are implicit conversions from types raw_ostream
understands but std::ostream doesn't, but it increases the number of cases that
Just Work.
llvm-svn: 81093
|
|
|
|
|
|
|
| |
means that raw_ostream no longer has to #include <iosfwd>. Nothing in llvm
should use raw_os_ostream.h, but llvm-gcc and some unit tests do.
llvm-svn: 79886
|
|
|
|
| |
llvm-svn: 79879
|
|
|
|
|
|
| |
ConstantRange doesn't have an std::ostream inserter anymore.
llvm-svn: 79831
|
|
|
|
| |
llvm-svn: 76744
|
|
|
|
|
|
|
| |
return the smallest union of two ranges instead of just any range that happens
to contain the union.
llvm-svn: 76360
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 76289
|
|
|
|
|
|
| |
again to Daniel Dunbar and KLEE!
llvm-svn: 75449
|
|
|
|
|
|
| |
Found by Daniel Dunbar and KLEE.
llvm-svn: 75448
|
|
|
|
|
|
| |
generally return Full on all wrapped inputs. "Fixes" PR4545.
llvm-svn: 75444
|
|
|
|
|
|
|
| |
large as the full set, only those one size smaller. Thanks to Daniel Dunbar
who found this bug using Klee!
llvm-svn: 75443
|
|
|
|
| |
llvm-svn: 75413
|
|
|
|
|
|
|
| |
Some = [10, 2730). A subset of that is [1024..2048) which covers every possible
10-bit pattern.
llvm-svn: 75411
|
|
|
|
| |
llvm-svn: 75410
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 75372
|
|
|
|
|
|
| |
changes.
llvm-svn: 75369
|
|
|
|
|
|
|
|
| |
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.
llvm-svn: 75191
|
|
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.
llvm-svn: 75177
|