History log of /external/llvm/lib/Support/APFloat.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
cddc3e03e4ec99c0268c03a126195173e519ed58 04-Mar-2016 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master LLVM for rebase to r256229

http://b/26987366

(cherry picked from commit f3ef5332fa3f4d5ec72c178a2b19dac363a19383)

Change-Id: Ic75dcb63191d65df1b69724576392c0aaeb47728
/external/llvm/lib/Support/APFloat.cpp
6948897e478cbd66626159776a8017b3c18579b9 01-Jul-2015 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master LLVM for rebase to r239765

Bug: 20140355: This rebase pulls the upstream fix for the spurious
warnings mentioned in the bug.

Change-Id: I7fd24253c50f4d48d900875dcf43ce3f1721a3da
/external/llvm/lib/Support/APFloat.cpp
4c5e43da7792f75567b693105cc53e3f1992ad98 08-Apr-2015 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master llvm for rebase to r233350

Change-Id: I07d935f8793ee8ec6b7da003f6483046594bca49
/external/llvm/lib/Support/APFloat.cpp
ebe69fe11e48d322045d5949c83283927a0d790b 23-Mar-2015 Stephen Hines <srhines@google.com> Update aosp/master LLVM for rebase to r230699.

Change-Id: I2b5be30509658cb8266be782de0ab24f9099f9b9
/external/llvm/lib/Support/APFloat.cpp
37ed9c199ca639565f6ce88105f9e39e898d82d0 01-Dec-2014 Stephen Hines <srhines@google.com> Update aosp/master LLVM for rebase to r222494.

Change-Id: Ic787f5e0124df789bd26f3f24680f45e678eef2d
/external/llvm/lib/Support/APFloat.cpp
c6a4f5e819217e1e12c458aed8e7b122e23a3a58 21-Jul-2014 Stephen Hines <srhines@google.com> Update LLVM for rebase to r212749.

Includes a cherry-pick of:
r212948 - fixes a small issue with atomic calls

Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/lib/Support/APFloat.cpp
dce4a407a24b04eebc6a376f8e62b41aaa7b071f 29-May-2014 Stephen Hines <srhines@google.com> Update LLVM for 3.5 rebase (r209712).

Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/Support/APFloat.cpp
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/Support/APFloat.cpp
1053a0b9b4e0a4f459667c110f40f5314c30f2db 30-Aug-2013 Eli Friedman <eli.friedman@gmail.com> Change default # of digits for APFloat::toString

This is a re-commit of r189442; I'll follow up with clang changes.

The previous default was almost, but not quite enough digits to
represent a floating-point value in a manner which preserves the
representation when it's read back in. The larger default is much
less confusing.

I spent some time looking into printing exactly the right number of
digits if a precision isn't specified, but it's kind of complicated,
and I'm not really sure I understand what APFloat::toString is supposed
to output for FormatPrecision != 0 (or maybe the current API specification
is just silly, not sure which). I have a WIP patch if anyone is interested.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189624 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
900617094505bba1fcf4d29c54901f48a0dacfa5 28-Aug-2013 Ted Kremenek <kremenek@apple.com> Revert r189442 "Change default # of digits for APFloat::toString"

This is breaking numerous Clang tests on the buildbot.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
631bce51b962df5f4821dfd4f91599d3f7ba05f9 28-Aug-2013 Eli Friedman <eli.friedman@gmail.com> Change default # of digits for APFloat::toString

The previous default was almost, but not quite enough digits to
represent a floating-point value in a manner which preserves the
representation when it's read back in. The larger default is much
less confusing.

I spent some time looking into printing exactly the right number of
digits if a precision isn't specified, but it's kind of complicated,
and I'm not really sure I understand what APFloat::toString is supposed
to output for FormatPrecision != 0 (or maybe the current API specification
is just silly, not sure which). I have a WIP patch if anyone is interested.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@189442 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
ca4d2e60ea36bd4f532ab5d52f5b4394a33be819 27-Jul-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Make all arithmetic operations with NaN produce positive NaNs.

IEEE-754R 1.4 Exclusions states that IEEE-754R does not specify the
interpretation of the sign of NaNs. In order to remove an irrelevant
variable that most floating point implementations do not use,
standardize add, sub, mul, div, mod so that operating anything with
NaN always yields a positive NaN.

In a later commit I am going to update the APIs for creating NaNs so
that one can not even create a negative NaN.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187314 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
060d34b1cf9a1185b24db95925f23d9fbadce078 27-Jul-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Move setting fcNormal in zeroSignificand() to calling code.

Zeroing the significand of a floating point number does not necessarily cause a
floating point number to become finite non zero. For instance, if one has a NaN,
zeroing the significand will cause it to become +/- infinity.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187313 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
763c066dca324ac4b86e7f014fe580ae5ba29fa0 18-Jul-2013 Eli Friedman <eli.friedman@gmail.com> Handle '.' correctly in hex float literal parsing.

There were a couple of different loops that were not handling
'.' correctly in APFloat::convertFromHexadecimalString; these mistakes
could lead to assertion failures and incorrect rounding for overlong
hex float literals.

Fixes PR16643.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
f0d0a1681a96f8c896d2ce3b1415c5d567cf5bb1 16-Jul-2013 Ulrich Weigand <ulrich.weigand@de.ibm.com> [APFloat] PR16573: Avoid losing mantissa bits in ppc_fp128 to double truncation

When truncating to a format with fewer mantissa bits, APFloat::convert
will perform a right shift of the mantissa by the difference of the
precision of the two formats. Usually, this will result in just the
mantissa bits needed for the target format.

One special situation is if the input number is denormal. In this case,
the right shift may discard significant bits. This is usually not a
problem, since truncating a denormal usually results in zero (underflow)
after normalization anyway, since the result format's exponent range is
usually smaller than the target format's.

However, there is one case where the latter property does not hold:
when truncating from ppc_fp128 to double. In particular, truncating
a ppc_fp128 whose first double of the pair is denormal should result
in just that first double, not zero. The current code however
performs an excessive right shift, resulting in lost result bits.
This is then caught in the APFloat::normalize call performed by
APFloat::convert and causes an assertion failure.

This patch checks for the scenario of truncating a denormal, and
attempts to (possibly partially) replace the initial mantissa
right shift by decrementing the exponent, if doing so will still
result in a valid *target format* exponent.


Index: test/CodeGen/PowerPC/pr16573.ll
===================================================================
--- test/CodeGen/PowerPC/pr16573.ll (revision 0)
+++ test/CodeGen/PowerPC/pr16573.ll (revision 0)
@@ -0,0 +1,11 @@
+; RUN: llc < %s | FileCheck %s
+
+target triple = "powerpc64-unknown-linux-gnu"
+
+define double @test() {
+ %1 = fptrunc ppc_fp128 0xM818F2887B9295809800000000032D000 to double
+ ret double %1
+}
+
+; CHECK: .quad -9111018957755033591
+
Index: lib/Support/APFloat.cpp
===================================================================
--- lib/Support/APFloat.cpp (revision 185817)
+++ lib/Support/APFloat.cpp (working copy)
@@ -1956,6 +1956,23 @@
X86SpecialNan = true;
}

+ // If this is a truncation of a denormal number, and the target semantics
+ // has larger exponent range than the source semantics (this can happen
+ // when truncating from PowerPC double-double to double format), the
+ // right shift could lose result mantissa bits. Adjust exponent instead
+ // of performing excessive shift.
+ if (shift < 0 && isFiniteNonZero()) {
+ int exponentChange = significandMSB() + 1 - fromSemantics.precision;
+ if (exponent + exponentChange < toSemantics.minExponent)
+ exponentChange = toSemantics.minExponent - exponent;
+ if (exponentChange < shift)
+ exponentChange = shift;
+ if (exponentChange < 0) {
+ shift -= exponentChange;
+ exponent += exponentChange;
+ }
+ }
+
// If this is a truncation, perform the shift before we narrow the storage.
if (shift < 0 && (isFiniteNonZero() || category==fcNaN))
lostFraction = shiftRight(significandParts(), oldPartCount, -shift);


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@186409 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
c93bee09ac0ebfad4efd7a7d195ce586d9ad50ed 02-Jul-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Swap an early out check so we do not dereference str.end().

Originally if D.firstSigDigit == str.end(), we will have already dereferenced
D.firstSigDigit in the first predicate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185437 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
b57770387ab262a0a23e77f094f599b6c955ba14 02-Jul-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Ensure that we can properly parse strings that do not have null terminators.

rdar://14323230

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185397 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
4dfc257a1ad58be07753bfb96377869cb5dcf8e7 27-Jun-2013 Michael Gottesman <mgottesman@apple.com> Revert "Revert "[APFloat] Removed APFloat constructor which initialized to either zero/NaN but allowed you to arbitrarily set the category of the float.""

This reverts commit r185099.

Looks like both the ppc-64 and mips bots are still failing after I reverted this
change.

Since:

1. The mips bot always performs a clean build,
2. The ppc64-bot failed again after a clean build (I asked the ppc-64
maintainers to clean the bot which they did... Thanks Will!),

I think it is safe to assume that this change was not the cause of the failures
that said builders were seeing. Thus I am recomitting.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185111 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
d6bd98d01c3db23f9a66b1f1b2d3e65eef65382e 27-Jun-2013 Michael Gottesman <mgottesman@apple.com> Revert "[APFloat] Removed APFloat constructor which initialized to either zero/NaN but allowed you to arbitrarily set the category of the float."

This reverts commit r185095. This is causing a FileCheck failure on
the 3dnow intrinsics on at least the mips/ppc bots but not on the x86
bots.

Reverting while I figure out what is going on.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
4da2ebeefb10390ad16238ae7a1038a987466225 27-Jun-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Removed APFloat constructor which initialized to either zero/NaN but allowed you to arbitrarily set the category of the float.

The category which an APFloat belongs to should be dependent on the
actual value that the APFloat has, not be arbitrarily passed in by the
user. This will prevent inconsistency bugs where the category and the
actual value in APFloat differ.

I also fixed up all of the references to this constructor (which were
only in LLVM).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185095 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
41489dd295d3b2b3df9c13989552c45efc93b912 27-Jun-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Convert all references to fcNormal to references to isFiniteNonZero().

Currently inside APFloat fcNormal still implies the old definition of Normal
(i.e. isFiniteNonZero) instead of the proper IEEE-754R definition that the
external method isNormal() uses.

This patch prepares for the internal switch inside APFloat by converting all
references that check if a category is fcNormal directly with an indirect call
via isFiniteNonZero().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185036 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
575694b6a7d49004acc93294bc88d0bc337e4d27 24-Jun-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Added support for parsing float strings which contain {inf,-inf,NaN,-NaN}.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184713 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
fdec0c7a7302702d08f1221609221018af8085ec 24-Jun-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Added make{Zero,Inf} methods and implemented get{Zero,Inf} on top of them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
fb25071a18ef24949f2f422c919b85340d6c6e2a 24-Jun-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Removed a assert from significandParts() which says that one can only access the significand of FiniteNonZero/NaN floats.

The method significandParts() is a helper method meant to ease access to
APFloat's significand by allowing the user to not need to be aware of whether or
not the APFloat is using memory allocated in the instance itself or in an
external array.

This assert says that one can only access the significand of FiniteNonZero/NaN
floats. This makes it cumbersome and more importantly dangerous when one wishes
to zero out the significand of a zero/infinity value since one will have to deal
with the aforementioned quandary related to how the memory in APFloat is
allocated.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
c29f5dc29eff6f00e23eb24a6be2b27a558aee98 24-Jun-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Rename macro convolve => PackCategoriesIntoKey so that it is clear what APFloat is actually using said macro for.

In the context of APFloat, seeing a macro called convolve suggests that APFloat
is using said value in some sort of convolution somewhere in the source code.
This is misleading.

I also added a documentation comment to the macro.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184710 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
db045ab1532469551a56e5811e684920a6f7a10c 24-Jun-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Rename llvm::exponent_t => llvm::APFloat::ExponentType.

exponent_t is only used internally in APFloat and no exponent_t values are
exposed via the APFloat API. In light of such conditions it does not make any
sense to gum up the llvm namespace with said type. Plus it makes it clearer that
exponent_t is associated with APFloat.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
07969dc8aed62fcd5c5760b2ec331275479f4a80 19-Jun-2013 Michael Gottesman <mgottesman@apple.com> [APFloat] Converted all references to APFloat::isNormal => APFloat::isFiniteNonZero.

Turns out all the references were in llvm and not in clang.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
15c6aa91477c1984455185854622ba4ee4829ab1 19-Jun-2013 Michael Gottesman <mgottesman@apple.com> Fixed comment typo that causes the given comment to actually make sense.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@184286 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
abff3aa8217049cffe6da77c91e510c66b8c2313 03-Jun-2013 Manuel Klimek <klimek@google.com> Introduce needsCleanup() for APFloat and APInt.

This is needed in clang so one can check if the object needs the
destructor called after its memory was freed. This is useful when
creating many APInt/APFloat objects with placement new, where the
overhead of tracking the pointers for cleanup is significant.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
77e5c2a1791b4f0338820e377bd255858bde64d5 01-Jun-2013 Benjamin Kramer <benny.kra@googlemail.com> APFloat: Use isDenormal instead of hand-rolled code to check for denormals.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@183072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
964722ca40f48c65605e459e3a732bb8783b92f6 30-May-2013 Michael Gottesman <mgottesman@apple.com> Implement IEEE-754R 2008 nextUp/nextDown functions in the guise of the function APFloat::next(bool nextDown).

rdar://13852078

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@182945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
4b6b53b0cec4fcf4d570daed3be41d6147d05224 13-May-2013 Shuxin Yang <shuxin.llvm@gmail.com> Fix a bug that APFloat::fusedMultiplyAdd() mistakenly evaluate "14.5f * -14.5f + 225.0f" to 225.0f.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@181715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
b631a41177de3dabe6ce273e515a1501a4387054 20-Mar-2013 Hao Liu <Hao.Liu@arm.com> Fix AsmPrinter crashes with assertion. Bug 15318 in Bugzilla

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177472 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
bd7561ea29649625775ef814dded2856d91c4dcf 25-Jan-2013 Benjamin Kramer <benny.kra@googlemail.com> APFloat: Make sure that we get a well-formed x87 NaN when converting from a smaller type.

Fixes PR15054.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173459 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
0a29cb045444c13160e90fe7942a9d7c720185ed 22-Jan-2013 Tim Northover <Tim.Northover@arm.com> Make APFloat constructor require explicit semantics.

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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173138 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
8a53a8329f47f86757af17dbea2864aa95414615 18-Jan-2013 Jordan Rose <jordan_rose@apple.com> Add llvm::hexDigitValue to convert single characters to hex.

This is duplicated in a couple places in the codebase. Adopt this in APFloat.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172851 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
96f498bd9f140a98321c478f517877c4767b94fa 13-Jan-2013 Dmitri Gribenko <gribozavr@gmail.com> Remove redundant 'llvm::' qualifications


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
7aa1c321f00d29fdc84e9a03080853aa25dd06fc 07-Jan-2013 Shuxin Yang <shuxin.llvm@gmail.com> Implement APFloat::isDenormal()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171764 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f 03-Dec-2012 Chandler Carruth <chandlerc@gmail.com> Use the new script to sort the includes of every file under lib.

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. =]

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
999d8bc38e2d8fad5acd978517bc6ba3047fa201 30-Nov-2012 Alexey Samsonov <samsonov@google.com> Fix a bug in APFloat.cpp: declare APFloat after fltSemantics it
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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169047 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
6b370e615ca5b3ef17ed4fe4fa891fab1e2bdd9a 08-Nov-2012 Benjamin Kramer <benny.kra@googlemail.com> Drop the limitation to IEEE floating point types from the fdiv of pow2 -> fmul transform.

This is safe for x87 long doubles and ppc double doubles too.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167582 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
159c735f7b8c4ec441780abcfccbe66f14346543 29-Oct-2012 Ulrich Weigand <ulrich.weigand@de.ibm.com> APFloat cleanup: Remove now unused "arithmeticOK" logic.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166954 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
fce241d76fa39347f852fa74363b61c5e42cc602 29-Oct-2012 Ulrich Weigand <ulrich.weigand@de.ibm.com> APFloat cleanup: Remove now unused fields "sign2" and "exponent2".


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166952 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
69c9c8c4cf57d49a0c64507082617f433372831d 29-Oct-2012 Ulrich Weigand <ulrich.weigand@de.ibm.com> Implement arithmetic on APFloat with PPCDoubleDouble semantics by
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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@166951 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
3e7735fe1c9e8f1cbad1bac02fbb998017fd0cbb 26-Sep-2012 Benjamin Kramer <benny.kra@googlemail.com> APFloat::roundToIntegral: Special values don't keep the exponent value up to date, don't rely on it.

Add a couple of unit tests for special floats. Fixes 13929, found by MemorySanitizer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@164698 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
b080e2fb1c8164c95e6f8d06754f0c7637eeae7b 24-Aug-2012 Richard Smith <richard-llvm@metafoo.co.uk> Fix undefined behavior (signed integer overflow) when Clang parses a hexfloat with an enormous exponent. Caught by an existing unit test + -ftrapv.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162505 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
c82cc587a468d44e5cfabfa8f8a639667127845d 15-Aug-2012 Owen Anderson <resistor@mac.com> Fix another roundToIntegral bug where very large values could become infinity. Problem and solution identified by Steve Canon.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161969 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
7c28978618cbbe472fe4415e56350a3461390658 15-Aug-2012 Owen Anderson <resistor@mac.com> Fix typo in comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
f7a5dfcb3b68b782543d25ba3151893111ff008f 15-Aug-2012 Owen Anderson <resistor@mac.com> Fix a problem with APFloat::roundToIntegral where it would return incorrect results for negative inputs to trunc. Add unit tests to verify this behavior.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161929 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
d7a85b17bdbb4cb3c3551e533d7b01984ad28a2f 14-Aug-2012 Owen Anderson <resistor@mac.com> Fix the construction of the magic constant for roundToIntegral to be 64-bit safe. Fixes c-torture/execute/990826-0.c


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161885 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
7c626d30974c632ab500171ff185a24bcf2603bf 14-Aug-2012 Owen Anderson <resistor@mac.com> Add a roundToIntegral method to APFloat, which can be parameterized over various rounding modes. Use this to implement SelectionDAG constant folding of FFLOOR, FCEIL, and FTRUNC.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
9f14ed1c60a1f6e8ab434a85d2ba9d82bc125cf4 25-Jul-2012 David Blaikie <dblaikie@gmail.com> Don't add null characters to the end of the APFloat string buffer.

Report/patch inspiration by Olaf Krzikalla.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160744 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
ed7692a136a9bcf513b91b7b5eb33a1e2d83e7ee 04-Mar-2012 Chandler Carruth <chandlerc@gmail.com> 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152004 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
752b2f0d8815c65ed2ca3d8428e8060644562e24 19-Feb-2012 NAKAMURA Takumi <geek4civic@gmail.com> APFloat::toString(): Fix overrun at scanning.

FYI, clang/test/SemaTemplate/template-id-printing.cpp had been failing due to it on cygwin-clang.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150911 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
732f05c41f177a0bc4d47e93a5d02120f146cb4c 10-Jan-2012 Chandler Carruth <chandlerc@gmail.com> Add 'llvm_unreachable' to passify GCC's understanding of the constraints
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
2bd335470f8939782f3df7f6180282d3825d4f09 10-Jan-2012 David Blaikie <dblaikie@gmail.com> Remove unnecessary default cases in switches that cover all enum values.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
f9b1cd0c7f7ca7324eacc46db10438cd9dccb70f 28-Nov-2011 Eli Friedman <eli.friedman@gmail.com> Add back a line I deleted by accident in r145141. Fixes uninitialized variable warnings and runtime failures.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
4455142a95bb3d0f6e6cbb336d6558919cb59bb8 26-Nov-2011 Eli Friedman <eli.friedman@gmail.com> Fix APFloat::convert so that it handles narrowing conversions correctly; it
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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145141 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
90196fced249e2bfe693391022541b802a7b8aa7 12-Oct-2011 Eli Friedman <eli.friedman@gmail.com> Fix APFloat::getSmallestNormalized so the shift doesn't depend on undefined behavior. Patch from Ahmed Charles.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141818 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
7247a5f20e1997e38cdfe3558afe8f10d547f2eb 12-Oct-2011 Eli Friedman <eli.friedman@gmail.com> Fix APFloat::getLargest so that it actually returns the correct value. Found by accident while reviewing a patch to nearby code.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141816 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
9eb6b4d91b83448ec818089754c74bbdcf7dfd7a 08-Oct-2011 Eli Friedman <eli.friedman@gmail.com> Fix APInt::operator*= so that it computes the correct result for large 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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141441 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
03dd4e8bd34de7b3cf4494043d2939a977134f32 03-Oct-2011 Nick Lewycky <nicholas@mxc.ca> Fix typo in comments.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141032 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
1f6a329f79b3568d379142f921f59c4143ddaa14 12-Aug-2011 Duncan Sands <baldrick@free.fr> Silence a bunch (but not all) "variable written but not read" warnings
when building with assertions disabled.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
3ba292dbc2acee2d1052fb7ffe332e2164147b47 18-Jul-2011 Jeffrey Yasskin <jyasskin@google.com> 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
e083805724196bd45a3612bf9373f503b5b8a7e0 15-Jul-2011 Chandler Carruth <chandlerc@gmail.com> Explicitly cast the second argument to unsigned in order to select the
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
3d42bfbbdd26ac56ccd706d4ebee984490c72ecc 15-Jul-2011 Jeffrey Yasskin <jyasskin@google.com> Add an APFloat::convertToInt(APSInt) function that automatically manages the
memory for the result.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@135259 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
7a2bdde0a0eebcd2125055e0eacaca040f0b766c 15-Apr-2011 Chris Lattner <sabre@nondot.org> Fix a ton of comment typos found by codespell. Patch by
Luis Felipe Strano Moraes!



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@129558 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
8398512f89623144c8bb45ce9deb4f74f76480fc 30-Mar-2011 Benjamin Kramer <benny.kra@googlemail.com> Avoid turning a floating point division with a constant power of two into a denormal multiplication.

Some platforms may treat denormals as zero, on other platforms multiplication
with a subnormal is slower than dividing by a normal.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128555 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
2746000f4fa54e6ad00cf96910ea5772803624ed 30-Mar-2011 Benjamin Kramer <benny.kra@googlemail.com> Add APFloat::getExactInverse.

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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
f09a8b533d8a28550e1a739c1ce8da167260c25f 18-Mar-2011 Bill Wendling <isanbard@gmail.com> Initialize the only-used-with-PPC-double-double parts of the APFloat class. This
makes valgrind stop complaining about uninitialized variables being read when it
accesses a bitfield (category) that shares its bits with these variables.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127871 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
093399cbf3bcdb31d04b3bf5c5691fc88c25da48 17-Feb-2011 Nadav Rotem <nadav.rotem@intel.com> Enhance constant folding of bitcast operations on vectors of floats.
Add getAllOnesValue of FP numbers to Constants and APFloat.
Add more tests.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@125776 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
584520e8e2c1f8cc04bc8dd4dc4ea6c390627317 23-Jan-2011 Ted Kremenek <kremenek@apple.com> Null initialize a few variables flagged by
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@124073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
4bb46f43eb48a9c7211916f60ee606edcd4fb4a2 06-Jan-2011 Abramo Bagnara <abramo.bagnara@gmail.com> Fixed parsing of hex floats.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122963 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
40f8f6264d5af2c38e797e0dc59827cd231e8ff7 07-Dec-2010 Jay Foad <jay.foad@gmail.com> 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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121120 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
e4d19c9eb22899c9a555395d446a9ceef3bea7eb 28-Nov-2010 Jay Foad <jay.foad@gmail.com> PR5207: change APInt::doubleToBits() and APInt::floatToBits() to be
static methods that return a new APInt.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
b1508d18896f9b9de7738b8df3cace64a2b22955 19-Aug-2010 Dale Johannesen <dalej@apple.com> Do not assert when reading an exponent out of range.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@111534 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
38e59891ee4417a9be2f8146ce0ba3269e38ac21 15-Jul-2010 Benjamin Kramer <benny.kra@googlemail.com> Don't pass StringRef by reference.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
16e02097d283159c240996185a8b20f4ea46ccfc 24-Mar-2010 Dan Gohman <gohman@apple.com> Fix minor style issues.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@99414 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
0ddda3b8c6acc85761636ad46981395fdbe8daba 06-Mar-2010 Chris Lattner <sabre@nondot.org> make APFloat::toString be const.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97883 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
d44c6cc4776d38dcb91069a776904b307f634370 01-Mar-2010 John McCall <rjmccall@apple.com> Don't potentially read past the end of the fill data when making a NaN from
an APInt.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
165e96bd25200ccabe4539aaf29a249b61074d11 28-Feb-2010 John McCall <rjmccall@apple.com> Properly clear all the extra bits in a significand when making a NaN from an
APInt. Be certain to set the integer bit in an x87 extended-precision
significand so that we don't accidentally make a pseudo-NaN.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
e12b73816b50bbe2cc54b8005d86c95413b4f465 28-Feb-2010 John McCall <rjmccall@apple.com> 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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97364 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
8b3f3307a26c5911eef034db565aec22ed74f13b 26-Feb-2010 John McCall <rjmccall@apple.com> Make APFloat's string-parsing routines a bit safer against very large exponents.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
6a09affdf62fccbd190ca6e9cac0cb065b5f2677 25-Dec-2009 John McCall <rjmccall@apple.com> Implement support for converting to string at "natural precision", and fix some
major bugs in long-precision conversion.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
003a09c68daa4934b3fe94ba03c7f50f8786310a 24-Dec-2009 John McCall <rjmccall@apple.com> Substantially optimize APFloat::toString() by doing a single large divide to
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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92130 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
00e65de9d83f846af732e3ace3f48d43d67b13d1 24-Dec-2009 John McCall <rjmccall@apple.com> Add accessors for the largest-magnitude, smallest-magnitude, and
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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92126 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
c5a75523eff46fe3880b94ae0fd22a1e01c27f28 28-Oct-2009 Evan Cheng <evan.cheng@apple.com> Remove getIEEEFloatParts and getIEEEDoubleParts. They are not needed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
99ebfa5f6c6f24fdce4cdd3de1adbc4a282db337 27-Oct-2009 Evan Cheng <evan.cheng@apple.com> Add new APFloat methods that return sign, exp, and mantissa of ieee float and double values.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
a223aed12625747ca9dbd4b1bb4c21494c61cf3e 23-Oct-2009 Dale Johannesen <dalej@apple.com> Commit fixes for half precision I noted in review, so
they don't get lost; I don't think the originator has
write access.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84928 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
cc4287a374a33fb03ef41b92f74783e31ef47650 16-Oct-2009 Chris Lattner <sabre@nondot.org> Add half precision floating point support (float16) to APFloat,
patch by Peter Johnson! (PR5195)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84239 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
ad78500712a48b0b93ba0430d7e20fe8531014f8 24-Sep-2009 Chris Lattner <sabre@nondot.org> wrap long lines.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
d7bd78e36e1d3adfc90a4f95b2cc849d38af1b24 17-Sep-2009 Chris Lattner <sabre@nondot.org> add a version of the APFloat constructor that initializes to 0.0


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82110 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
4755e9955b62e2e422a16634045d106785e6e248 22-Aug-2009 Anton Korobeynikov <asl@math.spbu.ru> Fix typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79688 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
7e844f128e0be77154aa08dbf2e828fcd4051604 22-Aug-2009 Anton Korobeynikov <asl@math.spbu.ru> Implement APInt <-> APFloat conversion for IEEE 128-bit floats.
This fixes PR2555

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
c78b33bdc1953914b0bbbaa1a0475cc231b43991 21-Aug-2009 Erick Tryzelaar <idadesub@users.sourceforge.net> Add support for including '+' in APFloat strings, more asserts,
and many new unit tests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79574 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
cdd93d8c35e1e983fd3a37f3de2ebc154731f20d 20-Aug-2009 Daniel Dunbar <daniel@zuster.org> Fix two APFloat bugs in converting hexadecimal constants.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79540 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
f8bc801c6cbaa1a7d34d779266755a86c97f5650 18-Aug-2009 Erick Tryzelaar <idadesub@users.sourceforge.net> Fix an uninitialized value warning in APFloat.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
a15d890c34b5e3a6373c410ebc58453f2d52f43b 17-Aug-2009 Erick Tryzelaar <idadesub@users.sourceforge.net> Modify APFloat to take a StringRef instead of a c string.

This also adds unit tests to APFloat that mainly tests the
string handling of APFloat, but not much else of it's api.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
c23197a26f34f559ea9797de51e187087c039c42 14-Jul-2009 Torok Edwin <edwintorok@gmail.com> llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable.
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").


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
c25e7581b9b8088910da31702d4ca21c4734c6d7 11-Jul-2009 Torok Edwin <edwintorok@gmail.com> assert(0) -> LLVM_UNREACHABLE.
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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
c5ca713b8073d9fe95b258d0c01328d020df3357 30-May-2009 Mike Stump <mrs@apple.com> Add support for letting the client choose different flavors of NaNs. Testcase to be
added in clang.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72606 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
f3dc0c048a807d1de4b8738af92f5aaeb34786d4 14-May-2009 Mike Stump <mrs@apple.com> Fix whitespacing (space after switch).


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@71738 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
1b25cb2416c46a6cebf2a6c52235e9fe46a10d11 23-Mar-2009 Dale Johannesen <dalej@apple.com> Fix internal representation of fp80 to be the
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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
ee167a729ebf150950025ecec66ba8b3386ebfe9 13-Mar-2009 Chris Lattner <sabre@nondot.org> just initialize the first element, we don't need to set the rest to zeros.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66850 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
807926a9453f6acbef5c3749bfb7edcc9c3932cb 13-Mar-2009 Chris Lattner <sabre@nondot.org> Eliminate a 9640 byte static mutable initialized data item by moving it
to the stack. This shrinks all llvm tools by 9k, and improves reentrancy.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66847 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
e213f3f97241788825900a62f3fe1535ae96a1d7 13-Mar-2009 Chris Lattner <sabre@nondot.org> static functions don't need an anonymous namespace.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@66845 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
aff9c270de8de7d1a0bc138d391bc67136bad58e 14-Feb-2009 Cedric Venet <cedric.venet@laposte.net> Unbreak the build on win32.
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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@64554 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
541ed9fd02ea48d2739f4a9dd681ba2d5da26886 21-Jan-2009 Dale Johannesen <dalej@apple.com> Do not use host floating point types when emitting
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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
ed6af24e146a5d358115123f0d2be694c1fa3a84 21-Jan-2009 Dale Johannesen <dalej@apple.com> Make special cases (0 inf nan) work for frem.
Besides APFloat, this involved removing code
from two places that thought they knew the
result of frem(0., x) but were wrong.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62645 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
24b66a83ca8c80417ad7523c35ece709a7e6599c 20-Jan-2009 Dale Johannesen <dalej@apple.com> Add an IEEE remainder function, which is not
fully implemented yet and not used. This is
mainly to clarify that APFloat::mod implements
C fmod, not remainder.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62593 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
1f54f58e64314601de1a082383e84162b287cab9 19-Jan-2009 Dale Johannesen <dalej@apple.com> compile-time fmod was done incorrectly. PR 3316.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@62528 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
b7c0d94465feaf09281ca8088f2872583a0c7d84 27-Nov-2008 Bill Wendling <isanbard@gmail.com> Get rid of bogus "control may reach end of non-void function ‘...’ being
inlined" message.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60165 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
794a7dbce030f93315b1305f83a374232f09bba5 26-Nov-2008 Evan Cheng <evan.cheng@apple.com> Revert r60042. IndVarSimplify should check if APFloat is PPCDoubleDouble first before trying to convert it to an integer.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60072 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
88f2d6c167a575e5d9c62ecb211ff4d825b09ed3 25-Nov-2008 Evan Cheng <evan.cheng@apple.com> convertToSignExtendedInteger should return opInvalidOp instead of asserting if sematics of float does not allow arithmetics.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60042 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
23a98551ab65eeb8fe5019df8b7db4891582a4bd 10-Oct-2008 Dale Johannesen <dalej@apple.com> Add a "loses information" return value to APFloat::convert
and APFloat::convertToInteger. Restore return value to
IEEE754. Adjust all users accordingly.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57329 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
7111b02c734c992b8c97d9918118768026dad79e 09-Oct-2008 Dale Johannesen <dalej@apple.com> Rename APFloat::convertToAPInt to bitcastToAPInt to
make it clearer what the function does. No functional
change.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
e4a424590675cf32b729420665626774b01b114d 07-Oct-2008 Dale Johannesen <dalej@apple.com> Mark negative-zero-to-int conversion as Inexact,
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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57224 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
2df5eec2ff25cbb7e5fd4848e667fb9f854d3339 07-Oct-2008 Dale Johannesen <dalej@apple.com> Be more precise about which conversions of NaNs
are Inexact. (These are not Inexact as defined
by IEEE754, but that seems like a reasonable way
to abstract what happens: information is lost.)



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57218 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
65609f2efa17916f77083a10a9a5239ff2fa1899 06-Oct-2008 Dale Johannesen <dalej@apple.com> Temporarily revert functionality change from my previous patch;
it is too aggressive.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
d3d8ce3aba85b40999eddbec3956f5b9534a36ff 06-Oct-2008 Dale Johannesen <dalej@apple.com> Mark shortening NaN conversions as Inexact. PR 2856.
Improve description of unsupported formats.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57185 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
fad86b003a839cef40ec8ce8408322f4913368ca 17-Aug-2008 Chris Lattner <sabre@nondot.org> Rework the routines that convert AP[S]Int into a string. Now, instead of
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.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54873 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
9f17eb0b79717d479e462f0284442adbeae903ef 17-Aug-2008 Chris Lattner <sabre@nondot.org> remove a dead APInt ctor.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54869 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
386f3e9d50507ecbfb01436dee85cb41ac2df530 15-May-2008 Dale Johannesen <dalej@apple.com> Don't assume underlying APInt type is limited
to 64 bits.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51135 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
6a33cc12ebf43b569ceea591c53edd3d507ad535 15-May-2008 Dale Johannesen <dalej@apple.com> Remove undefined behavior in hex string->APFloat
conversion. Try 0x1.0000a4p+0f. Neil, please review.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51132 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
7c2e4f2fc5a2fdcf4e933a03dd2e89154c946401 12-May-2008 Dan Gohman <gohman@apple.com> Make firstEightPowers const.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
48e8c80e1791adb7a07b8fd6e27edcdfbb756950 02-May-2008 Evan Cheng <evan.cheng@apple.com> Suppress -Wshorten-64-to-32 warnings for 64-bit hosts.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50590 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
79f82f9fd5dd5bceaf2a3b1c0426b3e7f40b6474 20-Apr-2008 Dale Johannesen <dalej@apple.com> Check that APFloat::convert is not trying to target
ppc long double, which doesn't work.

This may break some stuff temporarily, but I want to
avoid the propagation of code that assumes this works.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49983 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
3bd659ba20c235caabb0df6f93888d898197afb0 10-Apr-2008 Dan Gohman <gohman@apple.com> Make several symbols static.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
93c276e1c92da03ce9805fd3f3814b5e9b8cd57c 29-Feb-2008 Dan Gohman <gohman@apple.com> Add a method to APFloat to convert directly from APInt.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47738 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
1f801fa5ada9cb40fb97ae755c282e91af54a1bc 11-Feb-2008 Ted Kremenek <kremenek@apple.com> Added "Profile" method to APFloat for use with FoldingSet.

Added member template "Add" to FoldingSetNodeID that allows "adding" arbitrary
objects to a profile via dispatch to FoldingSetTrait<T>::Profile().

Removed FoldingSetNodeID::AddAPFloat and FoldingSetNodeID::APInt, as their
functionality is now replaced using the above mentioned member template.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
b63fa050b75b1aefbd6b0dac23ca789fac29128b 31-Jan-2008 Dale Johannesen <dalej@apple.com> Chris' change to print an approximation to long doubles
exposed a bug in APFloat's long double->double conversion of
NaNs. Broke several things in the ieee part of gcc testsuite.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
b10abe1e8c19f60191dd7afa50f8c623e2b8f041 29-Jan-2008 Dan Gohman <gohman@apple.com> Remove top-level const qualifiers from casts, avoiding associated
compiler warnings.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46509 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
4ee451de366474b9c228b4e5fa573795a715216d 29-Dec-2007 Chris Lattner <sabre@nondot.org> Remove attribution from file headers, per discussion on llvmdev.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
36d26c201f39c63ca440b74e5b317ae0039c0414 08-Dec-2007 Chris Lattner <sabre@nondot.org> proper #include order.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44707 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
cc2335968f3bcc39a12308390ea33ab0eab90744 05-Dec-2007 Neil Booth <neil@daikokuya.co.uk> Prior commit updated wrong if, apologies.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44614 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
a89e45f7544bff22b09de7ac7a8c000701bffae4 05-Dec-2007 Neil Booth <neil@daikokuya.co.uk> Handle zero correctly.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44613 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
db1e30272c06daba86c896e56a7d225a15c93b98 05-Dec-2007 Dale Johannesen <dalej@apple.com> Handle 0 correctly in string->APFloat conversion.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44594 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
d0763b91594982752db9f3eabbb2ea40867ca88a 17-Nov-2007 Dale Johannesen <dalej@apple.com> Fix denormal check in float->APInt conversion.
PR 1804.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44201 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
e3d936ac9ce56acfeb058f573e6c6ce0682ed781 02-Nov-2007 Neil Booth <neil@daikokuya.co.uk> Remove some unnecessary C-style statics.
Restore an assertion that arithmetic can be performed on this format.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43638 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
43a4b28e94598ea8accd7a97f8e1b5902731f340 01-Nov-2007 Neil Booth <neil@daikokuya.co.uk> Add back line whose removal somehow crept into prior patch

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43627 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
ee7ae384f5d6067f1ca6d475b8630fe91ff2f6b6 01-Nov-2007 Neil Booth <neil@daikokuya.co.uk> When converting to integer, do bit manipulations in the destination
memory rather than in a copy of the APFloat. This avoids problems
when the destination is wider than our significand and is cleaner.

Also provide deterministic values in all cases where conversion
fails, namely zero for NaNs and the minimal or maximal value
respectively for underflow or overflow.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43626 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
8df77a9e0fbe32bd519ac2fd16ba28298a110a69 26-Oct-2007 Hartmut Kaiser <hartmut.kaiser@gmail.com> Clarified operator precedence.
Silenced VC++ warning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43372 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
686700e32561c7be9e620b9b86134467c2456128 15-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Fast-track obviously over-large and over-small exponents during decimal->
integer conversion. In some such cases this makes us one or two orders
of magnitude faster than NetBSD's libc. Glibc seems to have a similar
fast path.

Also, tighten up some upper bounds to save a bit of memory.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42984 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
e5e0194583c9d95cae685da139531624e050d39e 14-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Consolidate logic for creating NaNs. Silence compiler warning.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42966 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
caf19d79e5cd41229d85bd514b86a1423b9a0f14 14-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Whether arithmetic is supported is a property of the semantics. Make it
so, and clean up the checks by putting them in an inline function.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42965 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
1870f29c6c7db1230aedd44a93a8a2d9339c7dd5 14-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Separate out parsing of decimal number. Use this to only allocate
memory for the significand once up-front. Also ignore insignificant
trailing zeroes; this saves unnecessary multiplications later.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42964 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
d1a23d573d5408be1cf52358fe03df0bfa07e16e 13-Oct-2007 Neil Booth <neil@daikokuya.co.uk> If the power of 5 is exact, and the reciprocal exact, the error is zero not one half-ulps. This prevents an infinite loop in rare cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42950 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
6ac7016eb1a2f58612e291a91e50f3e22df44d74 12-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Remove duplicate comment.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42913 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
96c7471b39dc77d4f29658212e5a72e575b23c39 12-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Implement correctly-rounded decimal->binary conversion, i.e. conversion
from user input strings.

Such conversions are more intricate and subtle than they may appear;
it is unlikely I have got it completely right first time. I would
appreciate being informed of any bugs and incorrect roundings you
might discover.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42912 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
5b8e0c5fd32fb3c4b6b13df99d4acab64d4e56c1 12-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Remove a field that was never used.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42911 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
7a951ca5480698c97bcf1561d3d564e5bd9199f8 12-Oct-2007 Neil Booth <neil@daikokuya.co.uk> If we're trying to be arbitrary precision, unsigned char clearly won't cut it. Needed for dec->bin conversions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42910 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
a471c2ecda37cd1bae0d94e832f002caa7b63216 11-Oct-2007 Dale Johannesen <dalej@apple.com> Next PPC long double bits. First cut at constants.
No compile-time support for constant operations yet,
just format transformations. Make readers and
writers work. Split constants into 2 doubles in
Legalize.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42865 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
5477f8593db785bbe84a4fe923b1e5645ff15f6a 08-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Use APInt::tcExtract. It's cleaner, and works :)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
f16c595252de363e0e1f6895a5a626bc30017053 07-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Add back convertFromSignExtendedInteger.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
7a7bc0f7248881cff466e964c4409c9c7da9da85 07-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Now that convertFromUnsignedParts has a sane, constant interface,
convertFromZeroExtendedInteger can be simplified as it doesn't need
to make a copy of the source bignum.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42734 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
643ce59495702ef29573b725d7431638be1c136a 07-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Reimplement convertFromUnsignedInteger so it is passed a const bignum.
It used to modify its argument in-place.

This interface is saner and the implementation more efficient. It will
be needed for decimal->binary conversion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42733 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
ccf596a53e16ea221a9bf8b3874a7d6afa71f1f4 07-Oct-2007 Neil Booth <neil@daikokuya.co.uk> convertFromInteger, as originally written, expected sign-extended
input. APInt unfortunately zero-extends signed integers, so Dale
modified the function to expect zero-extended input. Make this
assumption explicit in the function name.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42732 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
33d4c92e78a32a8e07ab3ebc1487b07304875ddd 07-Oct-2007 Neil Booth <neil@daikokuya.co.uk> combineLostFractions does not need to be a member function

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42729 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
92f7e8d92581e031beeee3dc6c170f5c2cc7ea18 06-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Cleaner, more general exponent output.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42690 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
a11ef82207cd7ab8a2d39c946bf6dc34636f2904 06-Oct-2007 Chris Lattner <sabre@nondot.org> silence warnings in no-assert build.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
978661d05301a9bcd1222c048affef679da5ac43 06-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Generalize tcFullMultiply so that the operands can be of differing
part widths. Also, return the number of parts actually required to
hold the result's value.
Remove an over-cautious condition from rounding of float->hex conversion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42669 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
a30b0ee959b53e83ed3697ee0b704a493829dc04 04-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Add APFloat -> hexadecimal string conversion, as per %a and %A in C99.
Useful for diagnostics and debugging.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42598 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
b7dea4cb368c7b2e825e6d58b249693736a32e21 03-Oct-2007 Neil Booth <neil@daikokuya.co.uk> Tweak RoundAwayFromZero the bit number below which is truncated, and make
it const.

Preparation for APFloat -> hexadecimal string conversion.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42576 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
cce23a4c3585d9d7df538bbc71151624a18f40cd 30-Sep-2007 Dale Johannesen <dalej@apple.com> Simplify and fix signed int -> FP conversions.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42483 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
4f88170be09496d5e934c601a83d37941ec9037a 26-Sep-2007 Neil Booth <neil@daikokuya.co.uk> Whitespace and compiler warning cleanup.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42373 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
0edc47ad7b3fb5ad5f9dcd4139f3074dd11ff457 26-Sep-2007 Dale Johannesen <dalej@apple.com> Make APFloat->int conversions deterministic even in
cases with undefined behavior.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42328 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
902ff94aff34acb2b11f4651f4a4006cb788301a 25-Sep-2007 Dale Johannesen <dalej@apple.com> Fix long double<->shorter FP type conversions
of zero, infinity, and NaNs.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
c8db43ddaf1c1f484ea08dff6fb61e5fa18352bc 22-Sep-2007 Neil Booth <neil@daikokuya.co.uk> Handle storage complications of float->float conversions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42220 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
910993e8dc49a25d9da3b53de4a82568c14e91cc 22-Sep-2007 Dale Johannesen <dalej@apple.com> Change APFloat::convertFromInteger to take the incoming
bit width instead of number of words allocated, which
makes it actually work for int->APF conversions.
Adjust callers. Add const to one of the APInt constructors
to prevent surprising match when called with const
argument.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42210 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
a72a5a095d0161f9258e75f38436698e9d75b879 21-Sep-2007 Dale Johannesen <dalej@apple.com> Fix PR 1688. See comments there.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42181 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
cb648f90a26eb05ae8d508d500ca12881df50824 14-Sep-2007 Dan Gohman <gohman@apple.com> Remove spurious consts. This fixes warnings with compilers that
are strict about such things.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
257500db0437b6089f46ccf58bcdf04ad8dae9d9 12-Sep-2007 Dale Johannesen <dalej@apple.com> Compensate for partCount change in Bogus definition
(could break hash table in ConstantFP)


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41874 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
3f6eb7419de437436265831fce92f62498556e08 11-Sep-2007 Dale Johannesen <dalej@apple.com> Add APInt interfaces to APFloat (allows directly
access to bits). Use them in place of float and
double interfaces where appropriate.
First bits of x86 long double constants handling
(untested, probably does not work).



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41858 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
58c2e4c5fdf8f9b275037e8b8d7fd64d56719fe6 05-Sep-2007 Dale Johannesen <dalej@apple.com> Fix mod so it actually works. Fix conversions to
native types to handle denormals correctly.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41726 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
e15c2db9935eee66a8008f1bd09882aff2ed3aae 01-Sep-2007 Dale Johannesen <dalej@apple.com> Oops, should be part of 41664; won't work very well without this piece.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41665 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
eaf089430e7681fcddc3465c3b33b9645273ab02 31-Aug-2007 Dale Johannesen <dalej@apple.com> 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
/external/llvm/lib/Support/APFloat.cpp
f04afdbb48568ef09f11fd10ac03426101f2dbf8 30-Aug-2007 Dale Johannesen <dalej@apple.com> Change LegalFPImmediates to use APFloat.
Add APFloat interfaces to ConstantFP, SelectionDAG.
Fix integer bit in double->APFloat conversion.
Convert LegalizeDAG to use APFloat interface in
ConstantFPSDNode uses.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41587 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
12595d7b165bf460b18f4ddd395dd29e6e6e68bc 25-Aug-2007 Dale Johannesen <dalej@apple.com> 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
/external/llvm/lib/Support/APFloat.cpp
d3b51fd17024569cc53ae02b9a4f80857930e08b 24-Aug-2007 Dale Johannesen <dalej@apple.com> Revised per review feedback from previous patch.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
ada530b4f552da1d122be0c6dbc936e689fc16fd 24-Aug-2007 Chris Lattner <sabre@nondot.org> silence some warnings in an optimized build.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41352 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp
343e770983dcf53a1ea2dfca4e04d28ebc41138a 24-Aug-2007 Dale Johannesen <dalej@apple.com> 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
/external/llvm/lib/Support/APFloat.cpp
b39cdde41d3c91d1fd48a038e63b78122607bb10 21-Aug-2007 Chris Lattner <sabre@nondot.org> initial checkin of Neil's APFloat work.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41203 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Support/APFloat.cpp