| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
-14.5f + 225.0f" to 225.0f.
llvm-svn: 181715
|
|
|
|
| |
llvm-svn: 177472
|
|
|
|
|
|
|
|
| |
smaller type.
Fixes PR15054.
llvm-svn: 173459
|
|
|
|
|
|
|
|
|
| |
Previously we tried to infer it from the bit width size, with an added
IsIEEE argument for the PPC/IEEE 128-bit case, which had a default
value. This default value allowed bugs to creep in, where it was
inappropriate.
llvm-svn: 173138
|
|
|
|
|
|
| |
This is duplicated in a couple places in the codebase. Adopt this in APFloat.
llvm-svn: 172851
|
|
|
|
| |
llvm-svn: 172358
|
|
|
|
| |
llvm-svn: 171764
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.
Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]
llvm-svn: 169131
|
|
|
|
|
|
|
|
|
|
|
| |
uses. APFloat::convert() takes the pointer to the fltSemantics
variable, which is later accessed it in ~APFloat() desctructor.
That is, semantics must still be alive at the moment we delete
APFloat.
Found by experimental AddressSanitizer use-after-scope checker.
llvm-svn: 169047
|
|
|
|
|
|
|
|
| |
fmul transform.
This is safe for x87 long doubles and ppc double doubles too.
llvm-svn: 167582
|
|
|
|
| |
llvm-svn: 166954
|
|
|
|
| |
llvm-svn: 166952
|
|
|
|
|
|
|
|
|
|
|
|
| |
treating it as if it were an IEEE floating-point type with 106-bit
mantissa.
This makes compile-time arithmetic on "long double" for PowerPC
in clang (in particular parsing of floating point constants)
work, and fixes all "long double" related failures in the test
suite.
llvm-svn: 166951
|
|
|
|
|
|
|
|
| |
date, don't rely on it.
Add a couple of unit tests for special floats. Fixes 13929, found by MemorySanitizer.
llvm-svn: 164698
|
|
|
|
|
|
| |
hexfloat with an enormous exponent. Caught by an existing unit test + -ftrapv.
llvm-svn: 162505
|
|
|
|
|
|
| |
infinity. Problem and solution identified by Steve Canon.
llvm-svn: 161969
|
|
|
|
| |
llvm-svn: 161956
|
|
|
|
|
|
| |
results for negative inputs to trunc. Add unit tests to verify this behavior.
llvm-svn: 161929
|
|
|
|
|
|
| |
safe. Fixes c-torture/execute/990826-0.c
llvm-svn: 161885
|
|
|
|
|
|
| |
various rounding modes. Use this to implement SelectionDAG constant folding of FFLOOR, FCEIL, and FTRUNC.
llvm-svn: 161807
|
|
|
|
|
|
| |
Report/patch inspiration by Olaf Krzikalla.
llvm-svn: 160744
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
FYI, clang/test/SemaTemplate/template-id-printing.cpp had been failing due to it on cygwin-clang.
llvm-svn: 150911
|
|
|
|
|
|
|
|
| |
of several newly un-defaulted switches. This also helps optimizers
(including LLVM's) recognize that every case is covered, and we should
assume as much.
llvm-svn: 147861
|
|
|
|
| |
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
|