History log of /external/llvm/include/llvm/Support/ConstantRange.h
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
62d7afad8faf7a1fbbf3402f8e23ce4ece9ab108 28-Jun-2012 Nuno Lopes <nunoplopes@sapo.pt> add ConstantRange::difference (to perform set difference/relative complement)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159352 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
e27db74a60c44d2b5d2700ecde11b1adce0d0d59 17-Dec-2010 Chris Lattner <sabre@nondot.org> improve switch formation to handle small range
comparisons formed by comparisons. For example,
this:

void foo(unsigned x) {
if (x == 0 || x == 1 || x == 3 || x == 4 || x == 6)
bar();
}

compiles into:

_foo: ## @foo
## BB#0: ## %entry
cmpl $6, %edi
ja LBB0_2
## BB#1: ## %entry
movl %edi, %eax
movl $91, %ecx
btq %rax, %rcx
jb LBB0_3

instead of:

_foo: ## @foo
## BB#0: ## %entry
cmpl $2, %edi
jb LBB0_4
## BB#1: ## %switch.early.test
cmpl $6, %edi
ja LBB0_3
## BB#2: ## %switch.early.test
movl %edi, %eax
movl $88, %ecx
btq %rax, %rcx
jb LBB0_4

This catches a bunch of cases in GCC, which look like this:

%804 = load i32* @which_alternative, align 4, !tbaa !0
%805 = icmp ult i32 %804, 2
%806 = icmp eq i32 %804, 3
%or.cond121 = or i1 %805, %806
%807 = icmp eq i32 %804, 4
%or.cond124 = or i1 %or.cond121, %807
br i1 %or.cond124, label %.thread, label %808

turning this into a range comparison.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122045 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
1f6efa3996dd1929fbc129203ce5009b620e6969 29-Nov-2010 Michael J. Spencer <bigcheesegs@gmail.com> Merge System into Support.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
7c0fd8eb724a7228a6cf7e3e5487614c25202a91 17-Nov-2010 Dan Gohman <gohman@apple.com> Fix ScalarEvolution's range memoization to avoid using a
default ctor with ConstantRange.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119550 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
6678e7b6eb534b43b92105076e6d0553e5cf7def 17-Nov-2010 Dan Gohman <gohman@apple.com> Memoize results from ScalarEvolution's getUnsignedRange and getSignedRange.
This fixes some extreme compile times on unrolled sha512 code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@119455 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
198381e542320265e1c5fed18e938db3563a45bf 07-Sep-2010 Nick Lewycky <nicholas@mxc.ca> Add completely hokey binary-and and binary-or operations to ConstantRange and
teach LazyValueInfo to use them.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113196 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
32cda119ef63ae1f1ee4b60e1d9e4a5ea8e00604 07-Sep-2010 Nick Lewycky <nicholas@mxc.ca> Add a new isSignWrappedSet() method to ConstantRange.

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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@113187 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
7f9ef4bb514d5a28637789d8f397dadd4344dc1b 12-Aug-2010 Nick Lewycky <nicholas@mxc.ca> Clean up ConstantRange a bit:
- 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
0aede9e2a85e596f5444378e71f52b65e28b3d71 07-Aug-2010 Owen Anderson <resistor@mac.com> Remove layering violation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110505 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
9773e45a1e97f5098905bac26b8b8b7c844473f0 07-Aug-2010 Owen Anderson <resistor@mac.com> Add an inverse() method to ConstantRange.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110504 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
fc8b58e1d435c248fee873e5d58674cc57074927 07-Aug-2010 Dan Gohman <gohman@apple.com> Delete this explicit assignment operator; it's equivalent to
the implicit one.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110498 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
634bab148cacc8cc8647172056c26c8bc3f60a65 07-Aug-2010 Owen Anderson <resistor@mac.com> Add a convenience constructor.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110493 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
9850a288664087875c7c35bec8c92b72a72ac142 05-Aug-2010 Owen Anderson <resistor@mac.com> Give ConstantRange an operator=


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110376 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
34e992da381bf8b1a9cbcc1bde0b117207809649 12-Nov-2009 Nuno Lopes <nunoplopes@sapo.pt> implement shl, ashr, and lshr methods. shl is not fully implemented as it is quite tricky.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
95a3be0ba44e96308c65c28ee859acc36149ddd8 09-Nov-2009 Nuno Lopes <nunoplopes@sapo.pt> add zextOrTrunc and sextOrTrunc methods, that are similar to the ones in APInt

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86549 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
8b67f774e9c38b7718b2b300b628388f966df4e0 26-Oct-2009 Chandler Carruth <chandlerc@gmail.com> Move DataTypes.h to include/llvm/System, update all users. This breaks the last
direct inclusion edge from System to Support.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85086 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
45cfe545ec8177262dabc70580ce05feaa1c3880 23-Aug-2009 Chris Lattner <sabre@nondot.org> Change Pass::print to take a raw ostream instead of std::ostream,
update all code that this affects.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79830 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
3a4a884c1618d94202ee714ea5c899cd80d1c536 18-Jul-2009 Nick Lewycky <nicholas@mxc.ca> Replace intersectWith with maximalIntersectWith. The latter guarantees that
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
/external/llvm/include/llvm/Support/ConstantRange.h
7ab2eb4a803405e84e96ec00a0010a05b81bb2d7 12-Jul-2009 Nick Lewycky <nicholas@mxc.ca> Make this clearer for the mathematically inclined. Thanks to Duncan Sands for
going over the text!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75414 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
f067a233562d3cfeb29d0092d1069bb8d25cad31 11-Jul-2009 Nick Lewycky <nicholas@mxc.ca> Clarify and simplify.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
bf8c7f0adf90c8271c790be9922a2f97d19d4c01 11-Jul-2009 Nick Lewycky <nicholas@mxc.ca> Move a method that creates constant ranges relative to another constant range
per icmp predicate out of predsimplify and into ConstantRange.

Add another utility method that determines whether one range is a subset of
another. Combine with the former to determine whether icmp pred range, range
is known to be true or not.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75357 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
38b06447615440f935008a2141bd0a1fe078d437 10-Jul-2009 Dan Gohman <gohman@apple.com> Revert the part of 75177 that split ConstantRange into two classes, and
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
/external/llvm/include/llvm/Support/ConstantRange.h
a3755d8d366fdd7a2415b93ac0253f8e677c9dfd 10-Jul-2009 Dan Gohman <gohman@apple.com> Add a ConstantSignedRange class, which does for signed integers
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
/external/llvm/include/llvm/Support/ConstantRange.h
fe2cce63aa26d0916fa7be32c6bf7fa8fb059ee7 20-Feb-2009 Misha Brukman <brukman+llvm@gmail.com> Removed trailing whitespace.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65196 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
944fac71e082cc2664cc71b4d3f6c72bab7143fb 24-Aug-2008 Chris Lattner <sabre@nondot.org> Switch the asmprinter (.ll) and all the stuff it requires over to
use raw_ostream instead of std::ostream. Among other goodness,
this speeds up llvm-dis of kc++ with a release build from 0.85s
to 0.49s (88% faster).

Other interesting changes:
1) This makes Value::print be non-virtual.
2) AP[S]Int and ConstantRange can no longer print to ostream directly,
use raw_ostream instead.
3) This fixes a bug in raw_os_ostream where it didn't flush itself
when destroyed.
4) This adds a new SDNode::print method, instead of only allowing "dump".


A lot of APIs have both std::ostream and raw_ostream versions, it would
be useful to go through and systematically anihilate the std::ostream
versions.

This passes dejagnu, but there may be minor fallout, plz let me know if
so and I'll fix it.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
b5660dc8223bd5eb3d21d9855692617fcdec5663 20-Feb-2008 Dan Gohman <gohman@apple.com> Add explicit keywords.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
7ed47a13356daed2a34cd2209a31f92552e3bdd8 29-Dec-2007 Chris Lattner <sabre@nondot.org> Don't attribute in file headers anymore. See llvmdev for the
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
/external/llvm/include/llvm/Support/ConstantRange.h
28753f8df2921fa9e9d60717c2078c826ea82bb4 14-Jul-2007 Nick Lewycky <nicholas@mxc.ca> Clarify the language. Pointed out by Duncan Sands.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39857 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
377b1190cbcf99e9298300d890c4b744dd2ed2c7 14-Jul-2007 Nick Lewycky <nicholas@mxc.ca> Add alternate ConstantRange intersection algorithm.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39851 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
e32157c6098ee7536315e9793eed98d21bf71fd0 07-Apr-2007 Nick Lewycky <nicholas@mxc.ca> Add signExtend to ConstantRange, to complement zeroExtend and truncate.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
3400e6af6b10acea219c02ac262637220f84218f 10-Mar-2007 Nick Lewycky <nicholas@mxc.ca> Add getter methods for the extremes of a ConstantRange.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35056 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
a6e8a955d6ab82911a1909fac7a9f4256a4d090e 01-Mar-2007 Reid Spencer <rspencer@reidspencer.com> Remove the "isSigned" parameters from ConstantRange. It turns out they
are not needed as the results are the same with or without it.

Patch by Nicholas Lewycky.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34782 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
bb626a6751db9a63d159d32522bdf88cedf46eeb 28-Feb-2007 Reid Spencer <rspencer@reidspencer.com> Move ConstantRange class to lib/Support from lib/Analysis and make its
interface not depend on Type or ICmpInst.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34761 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
581b0d453a63f7f657248f80317976995262be11 28-Feb-2007 Reid Spencer <rspencer@reidspencer.com> For PR1205:
Remove ConstantInt from ConstantRange interface and adjust its users to
compensate.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34758 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
dc5c1597014fa5c47c94db2b9fd424d2266053db 28-Feb-2007 Reid Spencer <rspencer@reidspencer.com> For PR1205:
First round of ConstantRange changes. This makes all CR constructors use
only APInt and not use ConstantInt. Clients are adjusted accordingly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34756 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
663e711dc235cae94eb50abb1c0571fd0b3a6a35 28-Feb-2007 Reid Spencer <rspencer@reidspencer.com> For PR1205:
Convert ConstantRange class to use APInt internally as its value type for
the constant range, instead of ConstantInt.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34745 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
3e051647c079fe29db049646b39611fc0135327d 11-Feb-2007 Nick Lewycky <nicholas@mxc.ca> Fix comments to match names of functions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34173 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
6b6b6ef1677fa71b1072c2911b4c1f9524a558c9 11-Jan-2007 Zhou Sheng <zhousheng00@gmail.com> For PR1043:
Merge ConstantIntegral and ConstantBool into ConstantInt.
Remove ConstantIntegral and ConstantBool from LLVM.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
e4d87aa2de6e52952dca73716386db09aad5a8fd 23-Dec-2006 Reid Spencer <rspencer@reidspencer.com> For PR950:
This patch removes the SetCC instructions and replaces them with the ICmp
and FCmp instructions. The SetCondInst instruction has been removed and
been replaced with ICmpInst and FCmpInst.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32751 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
5c7e326585f3a543388ba871c3425f7664cd9143 17-Dec-2006 Bill Wendling <isanbard@gmail.com> Added an automatic cast to "std::ostream*" etc. from OStream. We then can
rework the hacks that had us passing OStream in. We pass in std::ostream*
instead, check for null, and then dispatch to the correct print() method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
e81561909d128c6e2d8033cb5465a49b2596b26a 07-Dec-2006 Bill Wendling <isanbard@gmail.com> Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are
now cerr, cout, and NullStream resp.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
b5ebf15b2b2ce8989caf1a1114b05d80b0f9bd48 28-Nov-2006 Bill Wendling <isanbard@gmail.com> Added a temporary hack to get the llvm-streams to work for future checkins.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31978 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
63b3afa98460ce38a1c48d3c44ef6edfdaf37b77 21-Apr-2005 Misha Brukman <brukman+llvm@gmail.com> Remove trailing whitespace


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
551ccae044b0ff658fe629dd67edd5ffe75d10e8 02-Sep-2004 Reid Spencer <rspencer@reidspencer.com> Changes For Bug 352
Move include/Config and include/Support into include/llvm/Config,
include/llvm/ADT and include/llvm/Support. From here on out, all LLVM
public header files must be under include/llvm/.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
fc33d30446843009b0eadf63c0bfca35ae2baac6 30-Mar-2004 Chris Lattner <sabre@nondot.org> Add some new methods


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
62fe9b59c1b50883b027393a183ac468d4371781 29-Mar-2004 Chris Lattner <sabre@nondot.org> Relax the interface a bit


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12533 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
d0fde30ce850b78371fd1386338350591f9ff494 11-Nov-2003 Brian Gaeke <gaeke@uiuc.edu> Put all LLVM code into the llvm namespace, as per bug 109.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
6fbcc26f1460eaee4e0eb8b426fc1ff0c7af11be 20-Oct-2003 John Criswell <criswell@uiuc.edu> Added LLVM copyright header (for lack of a better term).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9304 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
625ea21205d1fb6f175e22477f55dd485b7c65c4 03-Sep-2002 Chris Lattner <sabre@nondot.org> Implement operator== and != for ranges


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3571 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
7382e73f86a69634688b73bd32b4ff798805240c 02-Sep-2002 Chris Lattner <sabre@nondot.org> Add printing support to ConstantRange class


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3566 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h
f6814d1dc75c28fa77aeca57704f1dfdff925b1e 02-Sep-2002 Chris Lattner <sabre@nondot.org> Initial implementation of ConstantRange support


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3564 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/include/llvm/Support/ConstantRange.h