Chris Lattner
b89f67e3e6
Make this compute the correct offset, handling alignment of the element
...
pointer correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42918 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-12 17:49:52 +00:00
Neil Booth
96c7471b39
Implement correctly-rounded decimal->binary conversion, i.e. conversion
...
from user input strings.
Such conversions are more intricate and subtle than they may appear;
it is unlikely I have got it completely right first time. I would
appreciate being informed of any bugs and incorrect roundings you
might discover.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42912 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-12 16:02:31 +00:00
Chris Lattner
886636445d
make operator== work with non-equal sized bitvectors, as long as
...
the extra bits are all zeros. This allows "010" and "010000" to be
treated as equal.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42889 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-12 03:48:59 +00:00
Ted Kremenek
0b22da3d73
Provided accessors to internal allocator for ImutAVLTree and ImmutableSet.
...
Added postfix ++,-- support for ImmutableSet::iterator.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42877 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-11 21:51:04 +00:00
Dale Johannesen
a471c2ecda
Next PPC long double bits. First cut at constants.
...
No compile-time support for constant operations yet,
just format transformations. Make readers and
writers work. Split constants into 2 doubles in
Legalize.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42865 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-11 18:07:22 +00:00
Chris Lattner
343960af31
make bitvector &= do the right thing if vectors have mismatched length.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42860 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-11 06:12:33 +00:00
Ted Kremenek
bdc2154986
Added iterators to ImmutableSet.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42851 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-11 00:14:49 +00:00
Ted Kremenek
37474bce02
Added some doxygen comments to ImmutableSet.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42850 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-10 23:47:03 +00:00
Ted Kremenek
ac6084dfc2
Removed uninformative assertions that catch problems that will
...
fire anyway at runtime due to a NULL dereference.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42848 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-10 23:35:04 +00:00
Ted Kremenek
13a21b0237
Removed "height" of an AVL tree node from its Profile. This is
...
implicitly captured by using the addresses of its children in the
profile.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42847 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-10 23:32:01 +00:00
Ted Kremenek
b308cdbc5f
Removed spurious forward declaration to a structure that will no longer be used.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42839 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-10 20:45:34 +00:00
Ted Kremenek
ea34bc892c
Added some doxygen comments to a few methods of ImutAVLTree.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42837 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-10 20:44:21 +00:00
Ted Kremenek
ebdbed3844
Added preliminary support for iterators in ImutAVLTree.
...
Implemented ImutAVLTree::isEqual.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42833 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-10 18:11:16 +00:00
Ted Kremenek
be24d91d82
Renamed internal method "Create" of ImutAVLTree to "CreateNode".
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42825 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-10 16:27:33 +00:00
Ted Kremenek
33bbed8f2a
Added implementation of immutable (functional) maps and sets, as
...
implemented on top of a functional AVL tree. The AVL balancing code
is inspired by the OCaml implementation of Map, which also uses a functional
AVL tree.
Documentation is currently limited and cleanups are planned, but this code
compiles and has been tested.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42813 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-09 21:38:09 +00:00
Chris Lattner
05831c073a
Fix problems where DenseMap used operator!= instead of correctly
...
calling the traits implementation of isEqual.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42782 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-09 05:42:12 +00:00
Chris Lattner
be2c4596cb
Change a #include into a forward declaration
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42781 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-09 03:40:30 +00:00
Neil Booth
68e53ad6cb
Add a new function tcExtract for extracting a bignum from an
...
arbitrary range of bits embedded in the middle of another bignum.
This kind of operation is desirable in many cases of software
floating point, e.g. converting bignum integers to floating point
numbers of fixed precision (you want to extract the precision most
significant bits).
Elsewhere, add an assertion, and exit the shift functions early if
the shift count is zero.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42745 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-08 13:47:12 +00:00
Chris Lattner
f8a3ee1d63
Finish off PR1723, by working around some strange compiler bug.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42737 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-07 17:57:10 +00:00
Neil Booth
f16c595252
Add back convertFromSignExtendedInteger.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42735 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-07 12:15:41 +00:00
Neil Booth
643ce59495
Reimplement convertFromUnsignedInteger so it is passed a const bignum.
...
It used to modify its argument in-place.
This interface is saner and the implementation more efficient. It will
be needed for decimal->binary conversion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42733 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-07 12:07:53 +00:00
Neil Booth
ccf596a53e
convertFromInteger, as originally written, expected sign-extended
...
input. APInt unfortunately zero-extends signed integers, so Dale
modified the function to expect zero-extended input. Make this
assumption explicit in the function name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42732 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-07 11:45:55 +00:00
Neil Booth
33d4c92e78
combineLostFractions does not need to be a member function
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42729 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-07 08:51:21 +00:00
Daniel Berlin
c27d61d3ae
Some more problems noticed by Curtis
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42717 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-07 04:47:57 +00:00
Neil Booth
978661d053
Generalize tcFullMultiply so that the operands can be of differing
...
part widths. Also, return the number of parts actually required to
hold the result's value.
Remove an over-cautious condition from rounding of float->hex conversion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42669 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-06 00:24:48 +00:00
Chris Lattner
bca98326b6
Mark count method const.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42639 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-05 17:40:38 +00:00
Daniel Berlin
ad92c633c7
Fix intersectWithComplement bug noticed by Curtis Dunham
...
Optimize |= case for empty RHS
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42629 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-05 05:10:53 +00:00
Daniel Berlin
08bb699843
Fix the previous bug a slightly different way (by modifying how find_next works)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42613 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-04 21:27:17 +00:00
Daniel Berlin
9d03724c8c
Fix off by one error in iterator
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42612 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-04 21:18:20 +00:00
Daniel Berlin
8d69b5a113
It helps a lot when you check for the end of your list before randomly
...
dereferencing things.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42605 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-04 05:29:36 +00:00
Daniel Berlin
c3a32d190c
Make SparseBitVector::set actually work properly when sets are not in ascending or descending order.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42604 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-04 05:25:51 +00:00
Neil Booth
a30b0ee959
Add APFloat -> hexadecimal string conversion, as per %a and %A in C99.
...
Useful for diagnostics and debugging.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42598 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-03 22:26:02 +00:00
Owen Anderson
9c8a9af5af
Add a GraphTraits partial specialization to make the inverse of an inverse be the same as the underlying graph.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42592 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-03 21:24:38 +00:00
Chris Lattner
116c3219df
Add initial iterator support for folding set.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42589 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-03 21:12:09 +00:00
Neil Booth
b7dea4cb36
Tweak RoundAwayFromZero the bit number below which is truncated, and make
...
it const.
Preparation for APFloat -> hexadecimal string conversion.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42576 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-03 15:16:41 +00:00
Chris Lattner
1bcc79666d
Add a helper useful when mapping from a map element to its hash node.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42480 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-30 08:31:46 +00:00
Chris Lattner
be207738d3
Add a new DenseSet abstraction.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42474 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-30 00:47:20 +00:00
Neil Booth
117acf9e36
Whitespace cleanup.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42374 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 21:35:05 +00:00
Daniel Berlin
9f711252f5
Fix small bug in operator== for iterators
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42331 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-26 00:11:59 +00:00
Daniel Berlin
e6f0479aee
Comment fixups
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42279 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-24 22:20:45 +00:00
Daniel Berlin
d81ccc2806
Implement offline variable substitution in order to reduce memory
...
and time usage.
Fixup operator == to make this work, and add a resize method to DenseMap
so we can resize our hashtable once we know how big it should be.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42269 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-24 19:45:49 +00:00
Owen Anderson
1dcca6b2d0
Fix typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42256 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-24 02:33:22 +00:00
Dale Johannesen
910993e8dc
Change APFloat::convertFromInteger to take the incoming
...
bit width instead of number of words allocated, which
makes it actually work for int->APF conversions.
Adjust callers. Add const to one of the APInt constructors
to prevent surprising match when called with const
argument.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42210 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-21 22:09:37 +00:00
Owen Anderson
4938d34772
Fix CopyFrom for non-POD data types.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42208 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-21 20:55:54 +00:00
Devang Patel
8feb1f4467
Do not hide APInt::dump() inside #ifndef NDEBUG.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42068 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-17 22:24:00 +00:00
Chris Lattner
76c1b97e40
Merge DenseMapKeyInfo & DenseMapValueInfo into DenseMapInfo
...
Add a new DenseMapInfo::isEqual method to allow clients to redefine
the equality predicate used when probing the hash table.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42042 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-17 18:34:04 +00:00
Daniel Berlin
430817ba18
That's what i get for using carbon emacs in a terminal
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42040 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-17 18:05:59 +00:00
Daniel Berlin
8180cf65a5
Fix iterator so it doesn't sometimes report bits that aren't in the bitmap
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42039 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-17 18:04:21 +00:00
Daniel Berlin
c6d939818b
Fix bug in andersen's related to test_and_set.
...
Add operator == and != to SparseBitVector.
Simplify code for test_and_set
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42018 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-16 23:59:53 +00:00
Daniel Berlin
7f44657c2f
Fix a few bugs related to zero'ing of elements
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42017 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-16 22:31:47 +00:00