Commit Graph

364 Commits

Author SHA1 Message Date
Evan Cheng
0eca22af62 Make it 64-bit safe.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34829 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-02 02:31:37 +00:00
Reid Spencer
b45a221348 Add an abs() function to get the absolute value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34819 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-01 23:37:09 +00:00
Reid Spencer
53ee4f9d40 Add doubleToBits and floatToBits methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34807 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-01 20:39:01 +00:00
Reid Spencer
ab2ed8ec85 Add bitsToDouble and bitsToFloat methods for re-interpretation of bits as FP.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34800 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-01 20:06:51 +00:00
Reid Spencer
68e2300ad9 Add methods for bit width modification: sextOrTrunc, zextOrTrunc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34789 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-01 17:15:32 +00:00
Reid Spencer
af8fb19846 Add a square root function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34775 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-01 05:39:56 +00:00
Reid Spencer
f2253449e2 Make APInt a little more friendly to its users:
* Add support for + and - of a uint64_t.
  * Make trunc/sext/zext return *this so it can be chained with other ops
  * Add smin, smax, umin, umax functions for getting min/max values.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34742 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-28 17:33:36 +00:00
Reid Spencer
84b4eeccc7 getActiveWords should return the number of words, not the index of the
highest active words. Increment its result by one.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34713 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-28 02:20:49 +00:00
Reid Spencer
9d3c519233 Add some syntactic sugar.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34704 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 23:47:33 +00:00
Reid Spencer
681dcd14e9 Implement countLeadingOnes() and getMinSignedBits(). This helps to minimize
the bit width of negative numbers by computing the minimum bit width for a
negative value. E.g. 0x1800000000000000 could be just 0x8000000000000000


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34695 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 21:59:26 +00:00
Reid Spencer
66ed1099ff Improve APInt interface:
1. Add unsigned and signed versions of methods so a "bool" argument doesn't
   need to be passed in.
2. Make the various getMin/getMax functions all be inline since they are
   so simple.
3. Simplify sdiv and srem code.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34680 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 20:24:31 +00:00
Reid Spencer
409f092766 Allow the RoundDoubleToAPInt function to specify a width to use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34672 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-27 18:22:31 +00:00
Reid Spencer
946bca5bae Fix indentation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34643 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-26 21:06:05 +00:00
Reid Spencer
31a81f0190 1. Split getValue() into getSExtValue() and getZExtValue() to match
ConstantInt better.
2. Add a getHashValue() method.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34641 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-26 20:57:12 +00:00
Reid Spencer
f99705e898 Implement inline methods that make transition of ConstantInt to use APInt
easier to comprehend and might be useful elsewhere.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34635 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-26 17:50:32 +00:00
Reid Spencer
ebf4ebd691 Make isNegative() a const function since it doesn't modify the APInt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34630 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-26 07:45:40 +00:00
Reid Spencer
dcffd5c3d9 Add an isNegative method to determine if the APInt's value is negative.
This is much less expensive than a test against zero.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34619 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-26 01:20:59 +00:00
Reid Spencer
c68c2243dc Fix clearUnusedBits to not depend on "undefined behavior" of >> operator
when the bit size is equal to the word size. This happens to work out okay
on x86, but might not on other platforms. The change just detects when
there are no bits to clear (because BitWidth is a multiple of the word size)
and returns early.

Also, move some comments from .cpp file into header.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34602 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-25 19:26:01 +00:00
Reid Spencer
20b1f5db1e Add a private constructor for efficiency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34580 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-25 07:29:03 +00:00
Reid Spencer
d03d012ad9 Improve documentation.
Make divide function internal (it was briefly external for testing).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34557 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-24 09:50:13 +00:00
Reid Spencer
f31c784f27 Add a dump() method for debugging.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34464 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-21 03:56:12 +00:00
Reid Spencer
e91f7847e6 Add an internal convenience method for division that urem and udiv use.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34448 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-20 08:43:42 +00:00
Reid Spencer
d81b065950 Add some new constants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34398 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-19 03:18:22 +00:00
Reid Spencer
a932e3f799 1. "unsigned" -> "uint32_t" to gaurantee its bit width on all platforms.
Size matters in this case.
2. Remove the unused whichByte private function, which was also broken.
3. Remove the non-const overload of the getWord function, getWord() is
   never used as an lvalue.
4. Rename some local variables for clarity (e.g. API -> Result).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34390 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-18 18:42:35 +00:00
Reid Spencer
443b570149 Implement signed output for toString.
Fix bugs in countLeadingZeros and countTrailingZeros.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34386 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-18 00:44:22 +00:00
Reid Spencer
cd6f2bfc26 Fix bugs introduced by constructor parameter order change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34357 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-17 00:18:01 +00:00
Reid Spencer
e81d2dad2c Review changes:
1. Function style changes.
2. 80-col violations.
3. Better names for things.
4. Arrange constructors so they all take bit width first.
5. Add named signed and unsigned comparison functions and remove the
   corresponding operators.
6. Remove operator&& and operator|| but provide a getBoolValue function which
   converts to bool as comparison against 0. This allows the normal && and
   || operators to be used as if (X.getBoolValue() && Y.getBoolValue())

Note: this still doesn't function 100% yet. I'm working on the bugs now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34353 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-16 22:36:51 +00:00
Evan Cheng
b5aabee330 Proper fix for the off-by-one bug in clear_unused_bits().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34328 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 21:38:15 +00:00
Reid Spencer
f1f007d2ff Fix an off-by-one bug in computing the index of the word to clear.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34326 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 20:49:10 +00:00
Reid Spencer
9d1597b086 Make sure Capacity gets initialized too.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34325 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 20:14:06 +00:00
Evan Cheng
852b4baf47 Missing a ;
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34322 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:29:05 +00:00
Evan Cheng
e01ad2d129 BitVector::reference operator=(const reference& rhs) is unnecessary thanks to autoconvert to bool.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34320 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:21:44 +00:00
Evan Cheng
1f46998b3f Remove unnecessary checks.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34319 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:18:12 +00:00
Evan Cheng
638417f788 operator== returns false when two bitvectors have different sizes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34317 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:16:21 +00:00
Evan Cheng
c761df18ae Merges two resize() variants.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34316 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:12:39 +00:00
Evan Cheng
ccae61c5da Clear no longer deleting the bits to avoid mallocs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34315 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:10:34 +00:00
Evan Cheng
7bf26c1d68 BitVector::count() bugs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34314 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:09:36 +00:00
Evan Cheng
334df9d83f Eliminate a redundent ctor; eliminate one more potential new [0].
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34313 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:05:25 +00:00
Evan Cheng
057f8e0845 1 -> 1L since BitWord has type unsigned long.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34312 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 19:03:23 +00:00
Evan Cheng
5f92ce4696 Eliminate new[0], just set Bits to NULL.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34311 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 18:59:15 +00:00
Evan Cheng
c48aafe6c6 Inverted the condition by accident.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34309 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 18:48:41 +00:00
Evan Cheng
506e899490 Bug fixes: assignment operator forgot to copy over size; copy ctor forgot to clear unused top bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34305 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 08:15:58 +00:00
Zhou Sheng
b04973edfa Fix some buges:
1. Make getMinValue() returns the right value.
2. Fix the ByteSwap() crash problem.
3. Make Postfix increment work correctly.
4. Fix some bugs in LogBase2, Hi/LoBits and UDiv.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34304 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 06:36:31 +00:00
Evan Cheng
ad1d5c3bc5 Add a BitVector class.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34301 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-15 05:56:11 +00:00
Reid Spencer
db3faa64ee Make some minor improvements to APInt:
1. Make all the operators use uppercase
2. Rename APIntRoundToDouble method just RoundToDouble, the APInt is
   redundant.
3. Turn the class on for compilation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34253 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13 22:41:58 +00:00
Chris Lattner
8c06509f95 fix a critical bug in smallvector, where it would destroy elements that are
not in its range (!).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34230 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-13 07:25:36 +00:00
Zhou Sheng
d93f00c35d 1. Make APInt::shl work correctly and more efficiently.
2. Add functions to support the numberical conversion between APInt and
   double/float.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34201 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-12 20:02:55 +00:00
Chris Lattner
a96b4ee7ff add new ShouldRehash method to factor out common code. Fix the dtor to not
delete tombstones.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34189 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-11 21:46:36 +00:00
Chris Lattner
65033ffc29 do not allow hash table to be filled with tombstones.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34186 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-11 21:07:36 +00:00
Chris Lattner
44dcd01cb3 Add support for removing elements out of StringMap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34185 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-11 20:58:00 +00:00
Chris Lattner
b5bb9f5b5c Replace the ugly FindValue method with STL-like find methods.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34183 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-11 19:49:41 +00:00
Chris Lattner
360cac8fef remove support for stringmap visitors now that iterators exist.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34180 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-11 08:22:15 +00:00
Chris Lattner
6ccadf6f7f add iterator support, plus support for size() and empty().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34178 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-11 08:12:13 +00:00
Chris Lattner
9cc2d3dce8 Split StringMapEntry construction out of StringMap, into StringMapEntry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34170 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-11 00:10:26 +00:00
Chris Lattner
569b935e6b Make find return the appropriate iterator/const_iterator
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34137 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-10 06:58:17 +00:00
Chris Lattner
a76b1febd4 Allow DenseMAp to take an explicit DenseMapKeyInfo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34134 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-10 06:34:58 +00:00
Zhou Sheng
ff4304f824 Eliminates friend function declaration inside APInt, instead, adds public
methods as those global function's internal implementation.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34083 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-09 07:48:24 +00:00
Chris Lattner
bb28a81ba3 Rename CStringMap -> StringMap, since it now supports nul characters in the
strings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34064 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 19:20:57 +00:00
Chris Lattner
ee182422ff Allow cstringmap to contain strings with nul characters in them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34062 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 19:08:37 +00:00
Zhou Sheng
0b706b18bd As Chris and Reid suggested, remove "isSigned" field from APInt, instead,
add some signed/unsigned arithmetic operation functions into APInt.h to
handle the signed/unsigned issue. These functions will be defined inside a
namespace "APIntOps" which is inside llvm namespace.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34053 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-08 14:35:19 +00:00
Lauro Ramos Venancio
58a0d64fae Fix build error.
include/llvm/ADT/APInt.h:326: error: ‘assert’ was not declared in this scope


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34002 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 16:59:17 +00:00
Zhou Sheng
f29a09d627 As Chris suggested, fixed some problems. (This is the first part.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33986 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 05:58:38 +00:00
Chris Lattner
e237cf934f do not let the table fill up with tombstones.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33973 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 01:11:25 +00:00
Chris Lattner
04a3115e61 Fix a really subtle bug where the entire hash table could fill with
tombstones, causing subsequent insertions to infinitely loop.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33972 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-07 00:55:59 +00:00
Lauro Ramos Venancio
53a58106d4 Fix build error.
UniqueVector.h:66: error: ‘assert’ was not declared in this scope


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33961 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-06 14:59:28 +00:00
Zhou Sheng
7406dcdc29 As Reid suggested, fixed some problems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33954 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-06 05:59:47 +00:00
Chris Lattner
c04a1ce623 Simplify this a bit, add an assertion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33936 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-05 23:24:48 +00:00
Chris Lattner
7b13624b32 Const method must use const_iterator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33933 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-05 23:18:32 +00:00
Zhou Sheng
d0f285e212 Add a class APInt to represent arbitrary precision constant integral values.
It is a functional replacement for common case integer type like "unsigned",
"uint64_t", but also allows non-byte-width integer type and large integer
value types such as 3-bits, 15-bits, or more than 64-bits of precision. For
more details, see pr1043.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33913 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-05 17:29:16 +00:00
Chris Lattner
28f72279f5 add a version of insert that takes the key and value.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33856 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 00:42:41 +00:00
Chris Lattner
5fcaf3ed14 Make SmallSetVector useful
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33854 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 00:30:40 +00:00
Chris Lattner
7235928b45 Various bugfixes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33848 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-04 00:12:12 +00:00
Chris Lattner
337cde0d5a Convert SetVector to be a true adapter class and add SmallSetVector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33846 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 23:56:03 +00:00
Chris Lattner
5a5f6b6e38 8 buckets is way too small to start out with. This was only for testing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33835 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 19:30:48 +00:00
Chris Lattner
32dc7fd0aa remove a dead header
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33820 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-03 03:02:10 +00:00
Chris Lattner
137d4b2533 silence annoying warning in release-asserts build
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33797 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-02 21:19:18 +00:00
Chris Lattner
70a76a633e add find/erase, add const iterators, fix bugs in iterators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33791 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-02 20:34:32 +00:00
Chris Lattner
f6390f48e6 add iterators
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33790 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-02 19:27:13 +00:00
Chris Lattner
6e94c00ab2 Add a new dense hash table implementation
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33751 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-01 07:49:59 +00:00
Chris Lattner
94c002a190 rename DenseMap to IndexedMap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33749 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-01 05:32:05 +00:00
Chris Lattner
e3f71b4198 rename DenseMap -> IndexedMap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33748 91177308-0d34-0410-b5e6-96231b3b80d8
2007-02-01 05:28:10 +00:00
Chris Lattner
af3e4d4bee add missing ctor
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33714 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-31 20:08:34 +00:00
Chris Lattner
ea830ef21f provide a definition for uintptr_t
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33592 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 23:52:33 +00:00
Chris Lattner
b358f0254d Make SmallSet<whatever*, N> faster by transparently implementing it with
SmallPtrSet.  Some clients will need to use SmallPtrSet directly though if
they need to iterate over the set.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33584 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 08:20:15 +00:00
Chris Lattner
894d264f3e add some missing API
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33583 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 08:19:03 +00:00
Chris Lattner
a5b4760cbd Give SmallSet a reasonable fallback if it gets large: use an std::set.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33582 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 08:14:53 +00:00
Chris Lattner
0b930852cf implement SmallPtrSet::erase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33581 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 07:59:10 +00:00
Chris Lattner
af3056c97e Fix a limitation of SmallPtrSet. Before it would assert if the smallsize
was not a power of two.  Now it rounds up to the next power of two internally.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33580 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 07:52:27 +00:00
Chris Lattner
18b69106b7 add some comments on the algorithm
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33579 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 07:24:51 +00:00
Chris Lattner
c95dc987e9 Add a new SmallSet ADT specialized for pointers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33577 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 07:10:46 +00:00
Chris Lattner
bcabbfc310 simplify insert interface
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33567 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 02:13:58 +00:00
Chris Lattner
32f3bd43db clean up comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33566 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-27 01:14:20 +00:00
Chris Lattner
ea516cce65 fit in 80 cols
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33553 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-26 21:48:40 +00:00
Chris Lattner
c970812283 fix typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33459 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-23 04:59:58 +00:00
Chris Lattner
182907645c make the SmallSet interface more std::set-like
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33458 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-23 01:16:19 +00:00
Chris Lattner
89502f0869 add a trivial SmallSet class, which operates on a similar principle to
SmallVector.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33456 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-23 00:59:15 +00:00
Reid Spencer
cf48cab945 For PR1094:
Make the SetVector::iterator be the vector's const_iterator.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@33279 91177308-0d34-0410-b5e6-96231b3b80d8
2007-01-17 02:22:18 +00:00
Chris Lattner
0a3615246f eliminate constructor from Statistic class. It is now impossible to get a
static constructor for them :).   Transition complete.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32710 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-19 23:17:40 +00:00
John Criswell
3d3a429acb Added operator methods to the Statistic class; some LLVM projects depend
on these.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32701 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-19 22:55:57 +00:00
Chris Lattner
ecb2768758 Refactor statistic a big and introduce a horrible-but-necessary macro
(STATISTIC), which allows us to define statistics that don't introduce
static ctors into the .o files.  I'm migrating code over to use this
incrementally.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32687 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-19 21:27:47 +00:00