|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| ... |  | 
| | 
| 
| 
| | llvm-svn: 147855 | 
| | 
| 
| 
| 
| 
| | variable warnings and runtime failures.
llvm-svn: 145256 | 
| | 
| 
| 
| 
| 
| 
| 
| | was returning incorrect values in rare cases, and incorrectly marking
exact conversions as inexact in some more common cases. Fixes PR11406, and a
missed optimization in test/CodeGen/X86/fp-stack-O0.ll.
llvm-svn: 145141 | 
| | 
| 
| 
| 
| 
| | behavior.  Patch from Ahmed Charles.
llvm-svn: 141818 | 
| | 
| 
| 
| 
| 
| | Found by accident while reviewing a patch to nearby code.
llvm-svn: 141816 | 
| | 
| 
| 
| 
| 
| | integers where there is unsigned overflow.  Fix APFloat::toString so that it doesn't depend on the incorrect behavior in common cases (and computes the correct result in some rare cases).  Fixes PR11086.
llvm-svn: 141441 | 
| | 
| 
| 
| | llvm-svn: 141032 | 
| | 
| 
| 
| 
| 
| | when building with assertions disabled.
llvm-svn: 137460 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | ambiguity
errors like the one corrected by r135261.  Migrate all LLVM callers of the old
constructor to the new one.
llvm-svn: 135431 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | desired overload.
This is a bit of a hackish workaround to fix the compile after r135259.
Let me know if there is a better approach.
llvm-svn: 135261 | 
| | 
| 
| 
| 
| 
| | memory for the result.
llvm-svn: 135259 | 
| | 
| 
| 
| 
| 
| | Luis Felipe Strano Moraes!
llvm-svn: 129558 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | denormal multiplication.
Some platforms may treat denormals as zero, on other platforms multiplication
with a subnormal is slower than dividing by a normal.
llvm-svn: 128555 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | The idea is, that if an ieee 754 float is divided by a power of two, we can
turn the division into a cheaper multiplication. This function sees if we can
get an exact multiplicative inverse for a divisor and returns it if possible.
This is the hard part of PR9587.
I tested many inputs against llvm-gcc's frotend implementation of this
optimization and didn't find any difference. However, floating point is the
land of weird edge cases, so any review would be appreciated.
llvm-svn: 128545 | 
| | 
| 
| 
| 
| 
| 
| | makes valgrind stop complaining about uninitialized variables being read when it
accesses a bitfield (category) that shares its bits with these variables.
llvm-svn: 127871 | 
| | 
| 
| 
| 
| 
| 
| | Add getAllOnesValue of FP numbers to Constants and APFloat.
Add more tests.
llvm-svn: 125776 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | clang's -Wuninitialized-experimental warning.
While these don't look like real bugs, clang's
-Wuninitialized-experimental analysis is stricter
than GCC's, and these fixes have the benefit
of being general nice cleanups.
llvm-svn: 124073 | 
| | 
| 
| 
| | 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 |