Chuck Rose III
418d360518
Fix for VisualStudio. It is treating a 2 bit enum as a signed int for comparison purposes, causing failures. Using an extra bit fixes it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41784 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-08 04:17:08 +00:00
Owen Anderson
718cb665ca
Add lengthof and endof templates that hide a lot of sizeof computations.
...
Patch by Sterling Stein!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41758 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-07 04:06:50 +00:00
Dale Johannesen
6d5e7d917b
fix reversal bug in preceding checkin
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41705 91177308-0d34-0410-b5e6-96231b3b80d8
2007-09-04 17:32:27 +00:00
Dale Johannesen
c4dd3c3b51
Add mod, copysign, abs operations to APFloat.
...
Implement some constant folding in SelectionDAG and
DAGCombiner using APFloat. Remove double versions
of constructor and getValue from ConstantFPSDNode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41664 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-31 23:34:27 +00:00
Dale Johannesen
ee8476847d
Revise per review of previous patch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41645 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-31 17:03:33 +00:00
Dale Johannesen
eaf089430e
Enhance APFloat to retain bits of NaNs (fixes oggenc).
...
Use APFloat interfaces for more references, mostly
of ConstantFPSDNode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41632 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-31 04:03:46 +00:00
Chris Lattner
cd3c4cac6e
getMinSignedBits needs to take into consider the sign bit when the value is positive.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41566 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-29 16:21:18 +00:00
Dan Gohman
81975f6dfd
Add explicit keywords and remove spurious trailing semicolons.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41482 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-27 14:50:10 +00:00
Dale Johannesen
21dcae17f5
Comment out declaration of operator== (undefined).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41383 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-25 00:40:41 +00:00
Dale Johannesen
12595d7b16
Poison APFloat::operator==. Replace existing uses with bitwiseIsEqual.
...
This means backing out the preceding change to Constants.cpp, alas.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41378 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-24 22:09:56 +00:00
Dale Johannesen
d3b51fd170
Revised per review feedback from previous patch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41353 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-24 05:08:11 +00:00
Dale Johannesen
343e770983
Change internal representation of ConstantFP to use APFloat.
...
Interface to rest of the compiler unchanged, as yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41348 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-24 00:56:33 +00:00
Chris Lattner
006f5a3c66
default this to radix 10 like the toString(Un)Signed methods.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41311 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-23 05:21:48 +00:00
Chris Lattner
028760fd88
Avoid hiding issues.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41310 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-23 05:20:48 +00:00
Chris Lattner
9132a2b818
rename APInt::toString -> toStringUnsigned for symmetry with toStringSigned()
...
Add an APSInt::toString() method.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41309 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-23 05:15:32 +00:00
Chris Lattner
b39cdde41d
initial checkin of Neil's APFloat work.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41203 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-20 22:49:32 +00:00
Chris Lattner
8568122b41
add reverse iterators to smallvector
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41198 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-20 21:22:48 +00:00
Chris Lattner
6de84985a4
improve iplist comments. Switch iplist from allocating its sentinal object (for
...
end()) eagerly to allocating it lazily. This saves a lot of memory for JIT applications
that read a module but don't materialize most of the functions (e.g. 62K for 252.eon).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41142 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-17 16:49:19 +00:00
Chris Lattner
fe8e14a6c9
This adds a bunch of static functions that implement unsigned
...
two's complement bignum arithmetic. They could be used to
implement much of APInt, but the idea is they are enough to
implement APFloat as well, which the current APInt interface
is not suited for.
Patch by Neil Booth!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41124 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-16 15:56:55 +00:00
Owen Anderson
3d345631db
Forgot a line.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41115 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-16 00:25:42 +00:00
Owen Anderson
67280e1dd2
Add a copy constructor and an assignment operator to DenseMap.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41114 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-16 00:18:32 +00:00
Anton Korobeynikov
ebf0303810
Properly use const qualifiers
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41111 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-15 21:12:30 +00:00
Reid Spencer
276222a5ae
Change casts from old style to new style. This helps document the details
...
better, gives the compiler a chance to validate the cast and reduces warnings
if the user turns on -Wold-style-cast option.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41033 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-12 08:12:35 +00:00
Chris Lattner
4f155b4c85
memcpy with zero length is hugely expensive, so avoid it. This speeds up coallescing from 1.17s to 0.88s on siod.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40984 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-10 07:02:50 +00:00
Chris Lattner
02cee38647
small speedup in the case where a smallvector is default ctor'd from
...
an empty vector. This speeds up llc slightly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40983 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-10 06:54:38 +00:00
Chandler Carruth
b1183c1ff3
This fixes resizing issues with BitVectors. It ensures that the BitWord type and type size is always used, and ensures completely correct clearing of unused high bits, and setting of bits when resizing. It should resolve PR1563.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40871 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-06 20:52:17 +00:00
Reid Spencer
f094f81d36
Document a missing parameter.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40852 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-05 19:36:39 +00:00
Chris Lattner
7b54452c84
Fix a bug in DenseMap::clear, where we never reset a tombstone
...
to EmptyKey.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40839 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-05 08:43:36 +00:00
Chris Lattner
42e4bdf257
When clearing a SmallPtrSet, if the set had a huge capacity, but the
...
contents of the set were small, deallocate and shrink the set. This
avoids having us to memset as much data, significantly speeding up
some pathological cases. For example, this speeds up the verifier
from 0.3899s to 0.0763 (5.1x) on the testcase from PR1432 in a
release build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40837 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-05 07:32:14 +00:00
Anders Carlsson
bfbfcdafbe
Fix bug spotted by Chris.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40725 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-02 06:05:19 +00:00
Anders Carlsson
7ccd9ec4f4
Add extend and extOrTrunc methods that do sign or zero extension depending on whether the integer is signed or not
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40724 91177308-0d34-0410-b5e6-96231b3b80d8
2007-08-02 06:00:13 +00:00
Owen Anderson
e992a56ae9
Allow SmallPtrSet to hold pointers to const data.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40556 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-27 18:07:02 +00:00
Chris Lattner
c6402013c8
Disable the string map copy ctor and assignment operators,
...
they don't do the right thing.
Implement StringMap::erase.
Fix a nasty bug in the default ctor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40395 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-22 20:08:01 +00:00
Owen Anderson
398b40671b
Make the heuristic for shrinking DenseMap smarter.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40114 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-20 18:56:46 +00:00
Owen Anderson
6ad5fde5d0
Have DenseMap auto-shrink itself on clear(). This improves the time to optimize
...
403.gcc from 15.2s to 14.3s.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40100 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-20 16:15:24 +00:00
Reid Spencer
845b31de0c
Unbreak the build by putting calls to free into the implementation file and
...
having that implementation file #include <cstdlib>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39952 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-17 02:16:12 +00:00
Owen Anderson
1629a1fa87
Use realloc() to (potentially) resize the contents of SmallPtrSet in place.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39926 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-16 21:27:44 +00:00
Chris Lattner
f7b71c64cf
add a helper method.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@39885 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-15 23:32:03 +00:00
Owen Anderson
c5c7f755c8
Evidently my earlier fix did not go far enough. When resizing a zero-sized
...
BitVector, make sure to set or clear ALL of the bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38481 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-10 02:01:16 +00:00
Owen Anderson
0c81450a0c
When resizing a BitVector with size 0, be sure to clear the low word before using it.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38476 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-09 23:39:39 +00:00
Owen Anderson
4d6f96d699
Make the assignment operator for SmallPtrSet return a reference, and fix a long-standing bug in the copy
...
ctor while I'm at it.
Thanks to Chris Lattner for help with this patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38470 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-09 20:59:01 +00:00
Chris Lattner
95fd3189f8
work around an aparent gcc name resolution bug by
...
detemplatizing this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38461 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-09 17:11:53 +00:00
Chris Lattner
91f0158d4d
implement operator= for smallptrset
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@38460 91177308-0d34-0410-b5e6-96231b3b80d8
2007-07-09 16:54:03 +00:00
Dan Gohman
59310c3dc0
Add an explicit keyword. Thanks Chris!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37819 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-29 22:16:25 +00:00
John Criswell
e644ef7b09
Convert .cvsignore files
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37801 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-29 16:35:07 +00:00
Dan Gohman
8b42bcdd1a
Add a default parameter to a SmallVector constructor to allow it to
...
be called with just an initial length value, just like in std::vector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37779 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-28 20:27:24 +00:00
Owen Anderson
d3fb671480
Have internal df_iterator's use SmallPtrSet instead of std::set. This provides compile time speedups to any pass using df_iterator.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37694 91177308-0d34-0410-b5e6-96231b3b80d8
2007-06-21 21:25:36 +00:00
Chris Lattner
26b146ccf1
silence some "comparison between signed and unsigned integer expressions"
...
warnings
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37177 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-17 20:01:40 +00:00
Dan Gohman
df799afbec
Fix some sporadic segfaults that are triggered when SmallVector's heap
...
storage lands near the end of the available address space. In the expression
Begin+N > Capacity, the Begin+N was overflowing. Fix this by replacing it
by with an expression that doesn't involve computation of an address
beyond the end of allocated memory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37171 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-17 18:29:01 +00:00
Reid Spencer
19dc32a2d4
Add some things needed by the llvm-gcc version supporting bit accurate integer
...
types:
1. Functions to compute div/rem at the same time.
2. Further assurance that an APInt with 0 bitwidth cannot be constructed.
3. Left and right rotate operations.
4. An exactLogBase2 function which requires an exact power of two or it
returns -1.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37025 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-13 23:44:59 +00:00
Chris Lattner
82493289e0
This is a patch to fix a compile error in STLExtras.h, and
...
a bug in GraphWriter.cpp.
Patch by Florian Brandner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36684 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 18:32:10 +00:00
Chris Lattner
49e1580214
remove useless type qualifiers
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36676 91177308-0d34-0410-b5e6-96231b3b80d8
2007-05-03 17:09:36 +00:00
Jeff Cohen
2864b77efc
Rename identifier that GCC uses as a macro, breaking llvm-gcc build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36474 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-26 15:07:47 +00:00
Chris Lattner
703f5291c4
add a missing operator
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36375 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-23 20:58:14 +00:00
Jeff Cohen
3f520a7111
Fix some VC++ warnings.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36259 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-19 02:04:09 +00:00
Chris Lattner
47e756c11e
Commit an patch from Gabor Greif in Mar 2005. This eliminates the tail
...
pointer from ilist, storing it in the prev pointer of the first node in the
list instead.
This shrinks ilist from 8 to 4 bytes, BasicBlock from 40->36 bytes, Function
from 76->68 bytes, Module from 52->44 bytes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36210 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-17 18:41:42 +00:00
Anton Korobeynikov
bed2946a96
Removed tabs everywhere except autogenerated & external files. Add make
...
target for tabs checking.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36146 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-16 18:10:23 +00:00
Jeff Cohen
ac58a16f85
Fix PR1329.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36016 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-14 21:50:21 +00:00
Reid Spencer
57ae4f5f01
Implement a getBitsNeeded method to determine how many bits are needed to
...
represent a string in binary form by an APInt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35968 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-13 19:19:07 +00:00
Chris Lattner
2b4c234388
fix a comment bug Reid noticed
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35864 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-10 16:33:06 +00:00
Chris Lattner
403949ea93
add missing methods, mark stuff const
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35862 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-10 07:06:21 +00:00
Chris Lattner
4bda52d6b5
add a method
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35860 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-10 06:43:18 +00:00
Chris Lattner
db8918a98f
Add a helper class (APSInt) which can represent an APInt along with sign
...
information. This is useful when a value does have a sign associated with
it. This shouldn't be used generally in LLVM for mid-level optimizer stuff.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35681 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-05 05:20:11 +00:00
Lauro Ramos Venancio
ecd276a498
Fix release build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35676 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-04 22:13:39 +00:00
Anton Korobeynikov
5502bf67cd
Properly emit range comparisons for switch cases, where neighbour cases
...
go to the same destination. Now we're producing really good code for
switch-lower-feature.ll testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35672 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-04 21:14:49 +00:00
Chris Lattner
6401260af2
trivial optimization
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35648 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-04 06:18:21 +00:00
Chris Lattner
d2f197da59
use calloc instead of new/memset, it is more efficient
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35644 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-04 00:44:31 +00:00
Chris Lattner
794a014809
Extend StringMap to support being initialized as completely empty. When
...
initialized this way, they do not do a malloc to allocate their buckets.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35642 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-04 00:29:37 +00:00
Chris Lattner
ef65293dc2
add missing operator
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35613 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-03 04:25:46 +00:00
Chris Lattner
febabcc02a
add a helper function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35585 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 05:41:00 +00:00
Chris Lattner
086f186267
add range version of insert()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35572 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 01:21:19 +00:00
Zhou Sheng
770e1798e1
Remove unused methods.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35553 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-01 12:45:33 +00:00
Duncan Sands
48a3e98c27
Correct typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35504 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-30 06:39:42 +00:00
Reid Spencer
f6bef488ee
Compute getLowBitsSet correctly. Using the complement of a 64-bit value
...
and shifting down without regard for the bitwidth of the APInt can lead
to incorrect initialization values. Instead, check for the word size case
(to avoid undef results from shift) and then do (1 << loBitsSet) - 1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35344 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-25 21:58:42 +00:00
Reid Spencer
5b9f2d6186
Fix a typo in a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35316 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-25 01:13:46 +00:00
Reid Spencer
a1689ea60e
Actually, for getHighBitsSet and getLowBitsSet, don't make a 0 bit size
...
illegal. Instead do the 0 valued construction for the user. This is because
the caller may not know (or care to check) that the number of bits set is
zero.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35315 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-25 00:01:47 +00:00
Reid Spencer
758d1bc919
Make it illegal to set 0 bits in getHighBitsSet and getLowBitsSet. For that
...
they should have used the uint64_t constructor. This avoids causing
undefined results via shifts by the word size when the bit width is an
exact multiple of the word size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35313 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-24 23:47:58 +00:00
Reid Spencer
5b7e659e22
In the getBitsSet function, don't optimize for a common case that is
...
already covered by getLowBitsSet (i.e. when loBits==0). Consequently, remove
the default value for loBits and reorder the arguments to the more natural
loBits, hiBits order. This makes it more clear that this function is for bit
groups in the middle of the bit width and not towards one end or the other.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35312 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-24 23:42:47 +00:00
Reid Spencer
ca76fc2cd3
Don't invoke undefined behavior in shifts in the functions getHighBitsSet
...
and getLowBitsSet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35311 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-24 23:35:54 +00:00
Reid Spencer
8f969ee62c
Implement the getBitsSet function.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35310 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-24 23:27:48 +00:00
Reid Spencer
8da7d65b83
Implement the getHighBitsSet and getLowBitsSet functions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35308 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-24 23:05:35 +00:00
Reid Spencer
013263f7b0
Get the signs in the right place!
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35307 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-24 22:50:43 +00:00
Reid Spencer
d3af825d29
Undo the last change and make this really implement remainder and not
...
modulus. The previous change was a result of incorrect documentation in
the LangRef.html.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35305 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-24 22:37:23 +00:00
Reid Spencer
53c9520b23
Correct the implementation of srem to be remainder, not modulus. The sign of
...
the result must follow the sign of the divisor.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35302 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-24 21:56:22 +00:00
Reid Spencer
7ac2f81e49
Clean up this interface:
...
1. Group similar methods into doxygen groups
2. Reorganize the groups into a consist flow.
3. Significantly improve the quality of the documentation on several methods
4. Rewrite srem and sdiv to eliminate a copy and improve readability.
5. Eliminate unneeded forward references.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35300 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-24 18:09:18 +00:00
Reid Spencer
3a3aacfe10
Fix a comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35246 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-21 22:22:19 +00:00
Zhou Sheng
e51ffcf27f
Correct the name: isStrictPositive --> isStrictlyPositive.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35201 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-20 02:18:16 +00:00
Chris Lattner
b9174dd5dc
Add a dtor to fix leaks from all clients of BitVector.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35200 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-20 02:10:56 +00:00
Reid Spencer
95da121395
Add an indication of signedness to the uint64_t constructor so sign bits
...
can be extended. This helps fix test/Assembler/2007-03-19-NegValue.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35179 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-19 20:36:48 +00:00
Zhou Sheng
fdcd5a7740
Add isStrictPositive() to APInt to determine if this APInt Value > 0.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35156 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-19 05:22:18 +00:00
Zhou Sheng
b991dfeae7
Add zextOrCopy() into APInt for convenience.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35079 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-13 06:16:26 +00:00
Zhou Sheng
8db6a445e6
Add getSignBit() and operator<<= into APInt for convenience.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35059 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-11 07:16:10 +00:00
Jeff Cohen
72adee00f6
The hack won't work on VS 2005, and it might not be needed anyway.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34930 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 17:22:33 +00:00
Zhou Sheng
3130835bdf
Correct the calculation in APInt::logBase2().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34929 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 16:42:58 +00:00
Jeff Cohen
f15bd1b9c6
Elminate tabs and improve comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34921 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 00:46:22 +00:00
Jeff Cohen
ca5183d445
Unbreak VC++ build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34917 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-05 00:00:42 +00:00
Chris Lattner
ab8fea5283
add iterator range version of ctor.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34899 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-04 04:04:43 +00:00
Reid Spencer
52f32d5566
Regularize the interface for conversion functions to/from float/double.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34881 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-03 08:34:02 +00:00
Reid Spencer
28bb83625a
Make getNumWords public so that those using getRawData stand a chance of
...
not reading beyond the end of the buffer returned.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34873 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-03 06:17:23 +00:00
Reid Spencer
da347141ec
Add names for some of the operators. This is needed for the macros in
...
the Interpreter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34872 91177308-0d34-0410-b5e6-96231b3b80d8
2007-03-03 05:37:23 +00:00