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
|