| Commit message (Collapse) | Author | Age | Files | Lines | 
| | 
| 
| 
|  | 
llvm-svn: 122963
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
| 
| 
|  | 
static methods that return a new APInt.
llvm-svn: 120261
 | 
| | 
| 
| 
|  | 
llvm-svn: 111534
 | 
| | 
| 
| 
|  | 
llvm-svn: 108366
 | 
| | 
| 
| 
|  | 
llvm-svn: 99414
 | 
| | 
| 
| 
|  | 
llvm-svn: 97883
 | 
| | 
| 
| 
| 
| 
|  | 
an APInt.
llvm-svn: 97467
 | 
| | 
| 
| 
| 
| 
| 
|  | 
APInt.  Be certain to set the integer bit in an x87 extended-precision
significand so that we don't accidentally make a pseudo-NaN.
llvm-svn: 97382
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
|  | 
llvm-svn: 97278
 | 
| | 
| 
| 
| 
| 
|  | 
major bugs in long-precision conversion.
llvm-svn: 92150
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
cut the significand down to the desired precision *before* entering the
core divmod loop.  Makes the overall algorithm logarithmic in the exponent.
There's still a lot of room for improvement here, but this gets the
performance back down to acceptable-for-diagnostics levels, even for
long doubles.
negligible, even on long doubles.
llvm-svn: 92130
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
smallest-normalized-magnitude values in a given FP semantics.
Provide an APFloat-to-string conversion which I am quite ready to admit could
be much more efficient.
llvm-svn: 92126
 | 
| | 
| 
| 
|  | 
llvm-svn: 85358
 | 
| | 
| 
| 
| 
| 
|  | 
and double values.
llvm-svn: 85318
 | 
| | 
| 
| 
| 
| 
| 
|  | 
they don't get lost; I don't think the originator has
write access.
llvm-svn: 84928
 | 
| | 
| 
| 
| 
| 
|  | 
patch by Peter Johnson! (PR5195)
llvm-svn: 84239
 | 
| | 
| 
| 
|  | 
llvm-svn: 82715
 | 
| | 
| 
| 
|  | 
llvm-svn: 82110
 | 
| | 
| 
| 
|  | 
llvm-svn: 79688
 | 
| | 
| 
| 
| 
| 
|  | 
This fixes PR2555
llvm-svn: 79677
 | 
| | 
| 
| 
| 
| 
|  | 
and many new unit tests.
llvm-svn: 79574
 | 
| | 
| 
| 
|  | 
llvm-svn: 79540
 | 
| | 
| 
| 
|  | 
llvm-svn: 79353
 | 
| | 
| 
| 
| 
| 
| 
|  | 
This also adds unit tests to APFloat that mainly tests the
string handling of APFloat, but not much else of it's api.
llvm-svn: 79210
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
This adds location info for all llvm_unreachable calls (which is a macro now) in
!NDEBUG builds.
In NDEBUG builds location info and the message is off (it only prints
"UREACHABLE executed").
llvm-svn: 75640
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.
llvm-svn: 75379
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Testcase to be
added in clang.
llvm-svn: 72606
 | 
| | 
| 
| 
|  | 
llvm-svn: 71738
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
same as a normal i80 {low64, high16} rather
than its own {high64, low16}.  A depressing number
of places know about this; I think I got them all.
Bitcode readers and writers convert back to the old
form to avoid breaking compatibility.
llvm-svn: 67562
 | 
| | 
| 
| 
|  | 
llvm-svn: 66850
 | 
| | 
| 
| 
| 
| 
|  | 
to the stack.  This shrinks all llvm tools by 9k, and improves reentrancy.
llvm-svn: 66847
 | 
| | 
| 
| 
|  | 
llvm-svn: 66845
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
Cleanup some warning.
Remark: when struct/class are declared differently than they are defined, this make problem for VC++ since it seems to mangle class differently that struct. These error are very hard to understand and find. So please, try to keep your definition/declaration in sync.
Only tested with VS2008. hope it does not break anything. feel free to revert.
llvm-svn: 64554
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
ASCII IR; loading and storing these can change the
bits of NaNs on some hosts.  Remove or add warnings
at a few other places using host floating point;
this is a bad thing to do in general.
llvm-svn: 62712
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
Besides APFloat, this involved removing code
from two places that thought they knew the
result of frem(0., x) but were wrong.
llvm-svn: 62645
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
fully implemented yet and not used.  This is
mainly to clarify that APFloat::mod implements
C fmod, not remainder.
llvm-svn: 62593
 | 
| | 
| 
| 
|  | 
llvm-svn: 62528
 | 
| | 
| 
| 
| 
| 
|  | 
inlined" message.
llvm-svn: 60165
 | 
| | 
| 
| 
| 
| 
|  | 
first before trying to convert it to an integer.
llvm-svn: 60072
 | 
| | 
| 
| 
| 
| 
|  | 
if sematics of float does not allow arithmetics.
llvm-svn: 60042
 | 
| | 
| 
| 
| 
| 
| 
|  | 
and APFloat::convertToInteger.  Restore return value to
IEEE754.  Adjust all users accordingly.
llvm-svn: 57329
 | 
| | 
| 
| 
| 
| 
| 
|  | 
make it clearer what the function does.  No functional
change.
llvm-svn: 57325
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
|  | 
since -0.0 can't be represented as an int.
This prevents llvm from reducing -0.0 to a
load-and-convert of int 0.  Fixes
ieee.exp/mzero[2356].c in gcc testsuite.
llvm-svn: 57224
 | 
| | 
| 
| 
| 
| 
| 
| 
|  | 
are Inexact.  (These are not Inexact as defined
by IEEE754, but that seems like a reasonable way
to abstract what happens:  information is lost.)
llvm-svn: 57218
 | 
| | 
| 
| 
| 
| 
|  | 
it is too aggressive.
llvm-svn: 57203
 | 
| | 
| 
| 
| 
| 
|  | 
Improve description of unsupported formats.
llvm-svn: 57185
 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
returning an std::string by value, it fills in a SmallString/SmallVector
passed in.  This significantly reduces string thrashing in some cases.
More specifically, this:
 - Adds an operator<< and a print method for APInt that allows you to 
   directly send them to an ostream.
 - Reimplements APInt::toString to be much simpler and more efficient
   algorithmically in addition to not thrashing strings quite as much.
This speeds up llvm-dis on kc++ by 7%, and may also slightly speed up the
asmprinter.  This also fixes a bug I introduced into the asmwriter in a
previous patch w.r.t. alias printing.
llvm-svn: 54873
 | 
| | 
| 
| 
|  | 
llvm-svn: 54869
 |