Dmitri Gribenko
aee81e7cae
Fix Doxygen issues:
...
* wrap code blocks in \code ... \endcode;
* refer to parameter names in paragraphs correctly (\arg is not what most
people want -- it starts a new paragraph).
llvm-svn: 163790
2012-09-13 12:34:29 +00:00
Dmitri Gribenko
98218ea1ef
Fix a bunch of -Wdocumentation warnings.
...
llvm-svn: 162446
2012-08-23 16:54:08 +00:00
Benjamin Kramer
42c85ae9d5
APInt: Simplify code.
...
No functionality change.
llvm-svn: 160929
2012-07-29 12:33:29 +00:00
Bill Wendling
f720eb7a94
Remove tabs.
...
llvm-svn: 160471
2012-07-18 23:58:37 +00:00
Eric Christopher
73191af11c
Move IsSameValue from clang's ASTImporter to be methods on the
...
APInt/APSInt classes.
Part of rdar://11875995
llvm-svn: 160223
2012-07-15 00:23:36 +00:00
Benjamin Kramer
23f7f57c50
Add move semantics to APInt.
...
llvm-svn: 157883
2012-06-02 08:39:08 +00:00
Nuno Lopes
328f9efec2
fix the quotient returned by sdivrem() for the case when LHS is negative and RHS is positive
...
based on a patch by Preston Briggs, with some modifications
llvm-svn: 157231
2012-05-22 01:09:48 +00:00
Benjamin Kramer
3bb5766d6e
Move APInt::operator[] inline.
...
llvm-svn: 152692
2012-03-14 00:38:15 +00:00
Benjamin Kramer
8a2603ad7e
Move APInt::operator! inline, it's small and fuses well with surrounding code when inlined.
...
llvm-svn: 152688
2012-03-14 00:01:35 +00:00
Chandler Carruth
a93fbd8fff
Replace the hashing functions on APInt and APFloat with overloads of the
...
new hash_value infrastructure, and replace their implementations using
hash_combine. This removes a complete copy of Jenkin's lookup3 hash
function (which is both significantly slower and lower quality than the
one implemented in hash_combine) along with a somewhat scary xor-only
hash function.
Now that APInt and APFloat can be passed directly to hash_combine,
simplify the rest of the LLVMContextImpl hashing to use the new
infrastructure.
llvm-svn: 152004
2012-03-04 12:02:57 +00:00
Rafael Espindola
7bddde2b49
Add r149110 back with a fix for when the vector and the int have the same
...
width.
llvm-svn: 149151
2012-01-27 23:33:07 +00:00
Benjamin Kramer
a41c3f4eff
Handle more cases in APInt::getLowBitsSet's fast path.
...
llvm-svn: 145249
2011-11-28 16:56:38 +00:00
Douglas Gregor
8c0777c5f3
Add APInt support for converting to/from hexatridecimal strings
...
llvm-svn: 139695
2011-09-14 15:54:46 +00:00
Jeffrey Yasskin
2e0f2a0985
Add APInt(numBits, ArrayRef<uint64_t> bigVal) constructor to prevent future ambiguity
...
errors like the one corrected by r135261. Migrate all LLVM callers of the old
constructor to the new one.
llvm-svn: 135431
2011-07-18 21:45:40 +00:00
Ted Kremenek
947d9a7e53
add option for literal formatting to APInt::toString()
...
toString() now takes an optional bool argument that,
depending on the radix, adds the appropriate prefix
to the integer's string representation that makes it into a
meaningful C literal, e.g.:
hexademical: '-f' becomes '-0xf'
octal: '77' becomes '077'
binary: '110' becomes '0b110'
Patch by nobled@dreamwidth.org !
llvm-svn: 133032
2011-06-15 00:51:55 +00:00
Frits van Bommel
c234349939
Constant folding support for calls to umul.with.overflow(), basically identical to the smul.with.overflow() code.
...
llvm-svn: 128379
2011-03-27 14:26:13 +00:00
Benjamin Kramer
a85996c235
Add an argument to APInt's magic udiv calculation to specify the number of bits that are known zero in the divided number.
...
This will come in handy soon.
llvm-svn: 127828
2011-03-17 20:39:06 +00:00
Cameron Zwarich
af4779907f
Add a getNumSignBits() method to APInt.
...
llvm-svn: 126379
2011-02-24 10:00:20 +00:00
Chris Lattner
307c1d4847
add a helper method.
...
llvm-svn: 125453
2011-02-13 08:04:16 +00:00
Jay Foad
79e18ed269
PR5207: Change APInt methods trunc(), sext(), zext(), sextOrTrunc() and
...
zextOrTrunc(), and APSInt methods extend(), extOrTrunc() and new method
trunc(), to be const and to return a new value instead of modifying the
object in place.
llvm-svn: 121120
2010-12-07 08:25:19 +00:00
Benjamin Kramer
e2e8053264
APInt: microoptimize a few methods.
...
llvm-svn: 120912
2010-12-04 18:05:36 +00:00
Benjamin Kramer
ec7938f7af
Simplify APInt::getAllOnesValue.
...
llvm-svn: 120911
2010-12-04 16:37:47 +00:00
Jay Foad
789e8ac4f7
PR5207: Rename overloaded APInt methods set(), clear(), flip() to
...
setAllBits(), setBit(unsigned), etc.
llvm-svn: 120564
2010-12-01 08:53:58 +00:00
Jay Foad
c663d7e4f6
PR5207: Make APInt::set(), APInt::clear() and APInt::flip() return void.
...
llvm-svn: 120413
2010-11-30 09:02:01 +00:00
Jay Foad
eb28ac4a7a
PR5207: remove unused methods APInt::Emit() and APInt::Read().
...
llvm-svn: 120262
2010-11-28 21:05:31 +00:00
Jay Foad
7378352505
PR5207: change APInt::doubleToBits() and APInt::floatToBits() to be
...
static methods that return a new APInt.
llvm-svn: 120261
2010-11-28 21:04:48 +00:00
Dan Gohman
67f95d770b
Factor code out of APInt to form a isUIntN helper function.
...
llvm-svn: 118133
2010-11-03 00:38:40 +00:00
Chris Lattner
451a0accb5
add uadd_ov/usub_ov to apint, consolidate constant folding
...
logic to use the new APInt methods. Among other things this
implements rdar://8501501 - llvm.smul.with.overflow.i32 should constant fold
which comes from "clang -ftrapv", originally brought to my attention from PR8221.
llvm-svn: 116457
2010-10-14 00:05:07 +00:00
Chris Lattner
365326538a
missed a line :(
...
llvm-svn: 116456
2010-10-13 23:57:00 +00:00
Chris Lattner
093d5fe0a9
constify these methods.
...
llvm-svn: 116455
2010-10-13 23:54:10 +00:00
Chris Lattner
70a78ab2c5
add a few operations for signed operations that also
...
return an overflow flag.
llvm-svn: 116452
2010-10-13 23:46:33 +00:00
Benjamin Kramer
1725ef6c89
Use getAllOnesValue, saves a copy and looks better.
...
llvm-svn: 110991
2010-08-13 00:29:44 +00:00
Benjamin Kramer
da3e6cdb26
Don't pass StringRef by reference.
...
llvm-svn: 108366
2010-07-14 22:38:02 +00:00
Dan Gohman
127f5c53e1
Add variants of ult, ule, etc. which take a uint64_t RHS, for convenience.
...
llvm-svn: 100824
2010-04-08 23:03:40 +00:00
John McCall
b6e6dd63ad
Add an override to StringRef::getAsInteger which parses into an APInt.
...
It gets its own implementation totally divorced from the (presumably
performance-sensitive) routines which parse into a uint64_t.
Add APInt::operator|=(uint64_t), which is situationally much better than
using a full APInt.
llvm-svn: 97381
2010-02-28 09:55:58 +00:00
John McCall
69bc985550
Teach APFloat how to create both QNaNs and SNaNs and with arbitrary-width
...
payloads. APFloat's internal folding routines always make QNaNs now,
instead of sometimes making QNaNs and sometimes SNaNs depending on the
type.
llvm-svn: 97364
2010-02-28 02:51:25 +00:00
Dan Gohman
f9067da535
Add a ceilLogBase2 function to APInt.
...
llvm-svn: 83932
2009-10-13 01:49:02 +00:00
Chris Lattner
c02ffc37e0
remove the dead std::ostream APInt inserter
...
llvm-svn: 79875
2009-08-23 23:11:28 +00:00
Daniel Dunbar
3a5a25d5d5
Convert APint::{fromString,APInt,getBitsNeeded} to use StringRef.
...
- Patch by Erick Tryzelaar, with some edits (and a bug fix) from me.
llvm-svn: 78885
2009-08-13 02:33:34 +00:00
Dan Gohman
148d3bb9b4
Reapply 74494, this time removing the conflicting definition of operator<<
...
in APIntTest.cpp.
llvm-svn: 74550
2009-06-30 20:10:56 +00:00
Bill Wendling
1121a4ce5e
Temporarily revert r74494. It was causing failures in the unit tests.
...
llvm-svn: 74515
2009-06-30 07:05:27 +00:00
Dan Gohman
f207911974
Define an operator<< for APInt to be used with std::ostream.
...
This will allow it to be used in unittests that use gtest's
EXPECT_EQ.
llvm-svn: 74494
2009-06-30 01:28:08 +00:00
Jay Foad
9768cabf4a
Move helper functions for optimizing division by constant into the APInt
...
class.
llvm-svn: 70488
2009-04-30 10:15:35 +00:00
Douglas Gregor
d2b9d57e20
Add a static APInt::getNumWords
...
llvm-svn: 68977
2009-04-13 19:43:10 +00:00
Dan Gohman
770f4158e5
Use CHAR_BIT instead of hard-coding 8 in several places where it
...
is appropriate. This helps visually differentiate host-oriented
calculations from target-oriented calculations.
llvm-svn: 68227
2009-04-01 18:45:54 +00:00
Misha Brukman
380e3db1b4
Fixed lint errors:
...
* Alphabetized #includes
* Removed trailing whitespace
* Wrapped or shortened lines over 80 chars
llvm-svn: 65181
2009-02-20 22:20:18 +00:00
Bill Wendling
a03453cace
These function return 'void'. Don't have 'return' return anything.
...
llvm-svn: 64136
2009-02-09 12:31:26 +00:00
Chris Lattner
816e00f6a0
eliminate use of uint32_t to improve compatibility with cygwin
...
llvm-svn: 62591
2009-01-20 18:23:14 +00:00
Misha Brukman
da77da48f3
Removed trailing whitespace.
...
llvm-svn: 62000
2009-01-09 19:25:42 +00:00
Chris Lattner
a249224590
Fix isIntN to work with APInts > 64 bits. This method is only
...
used by clang apparently.
llvm-svn: 60446
2008-12-02 23:33:29 +00:00