LLVM API Documentation
#include "llvm/ADT/APFloat.h"#include "llvm/ADT/APSInt.h"#include "llvm/ADT/FoldingSet.h"#include "llvm/ADT/Hashing.h"#include "llvm/ADT/StringExtras.h"#include "llvm/ADT/StringRef.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/MathExtras.h"#include <cstring>#include <limits.h>
Go to the source code of this file.
Classes | |
| struct | llvm::fltSemantics |
| struct | decimalInfo |
Namespaces | |
| namespace | llvm |
List of target independent CodeGen pass IDs. | |
Defines | |
| #define | convolve(lhs, rhs) ((lhs) * 4 + (rhs)) |
| #define | COMPILE_TIME_ASSERT(cond) extern int CTAssert[(cond) ? 1 : -1] |
Functions | |
| COMPILE_TIME_ASSERT (integerPartWidth%4==0) | |
| static unsigned int | partCountForBits (unsigned int bits) |
| static unsigned int | decDigitValue (unsigned int c) |
| static int | readExponent (StringRef::iterator begin, StringRef::iterator end) |
| static int | totalExponent (StringRef::iterator p, StringRef::iterator end, int exponentAdjustment) |
| static StringRef::iterator | skipLeadingZeroesAndAnyDot (StringRef::iterator begin, StringRef::iterator end, StringRef::iterator *dot) |
| static void | interpretDecimal (StringRef::iterator begin, StringRef::iterator end, decimalInfo *D) |
| static lostFraction | trailingHexadecimalFraction (StringRef::iterator p, StringRef::iterator end, unsigned int digitValue) |
| static lostFraction | lostFractionThroughTruncation (const integerPart *parts, unsigned int partCount, unsigned int bits) |
| static lostFraction | shiftRight (integerPart *dst, unsigned int parts, unsigned int bits) |
| static lostFraction | combineLostFractions (lostFraction moreSignificant, lostFraction lessSignificant) |
| static unsigned int | HUerrBound (bool inexactMultiply, unsigned int HUerr1, unsigned int HUerr2) |
| static integerPart | ulpsFromBoundary (const integerPart *parts, unsigned int bits, bool isNearest) |
| static unsigned int | powerOf5 (integerPart *dst, unsigned int power) |
| static unsigned int | partAsHex (char *dst, integerPart part, unsigned int count, const char *hexDigitChars) |
| static char * | writeUnsignedDecimal (char *dst, unsigned int n) |
| static char * | writeSignedDecimal (char *dst, int value) |
Variables | |
| const unsigned int | llvm::maxExponent = 16383 |
| const unsigned int | llvm::maxPrecision = 113 |
| const unsigned int | llvm::maxPowerOfFiveExponent = maxExponent + maxPrecision - 1 |
| const unsigned int | llvm::maxPowerOfFiveParts |
| static const char | hexDigitsLower [] = "0123456789abcdef0" |
| static const char | hexDigitsUpper [] = "0123456789ABCDEF0" |
| static const char | infinityL [] = "infinity" |
| static const char | infinityU [] = "INFINITY" |
| static const char | NaNL [] = "nan" |
| static const char | NaNU [] = "NAN" |
| #define COMPILE_TIME_ASSERT | ( | cond | ) | extern int CTAssert[(cond) ? 1 : -1] |
Definition at line 32 of file APFloat.cpp.
| #define convolve | ( | lhs, | |
| rhs | |||
| ) | ((lhs) * 4 + (rhs)) |
Definition at line 28 of file APFloat.cpp.
Referenced by llvm::APFloat::compare().
| static lostFraction combineLostFractions | ( | lostFraction | moreSignificant, |
| lostFraction | lessSignificant | ||
| ) | [static] |
Definition at line 370 of file APFloat.cpp.
References llvm::lfExactlyHalf, llvm::lfExactlyZero, llvm::lfLessThanHalf, and llvm::lfMoreThanHalf.
| COMPILE_TIME_ASSERT | ( | integerPartWidth% | 4 = =0 | ) |
Definition at line 100 of file APFloat.cpp.
Referenced by interpretDecimal(), readExponent(), and totalExponent().
| static unsigned int HUerrBound | ( | bool | inexactMultiply, |
| unsigned int | HUerr1, | ||
| unsigned int | HUerr2 | ||
| ) | [static] |
Definition at line 391 of file APFloat.cpp.
| static void interpretDecimal | ( | StringRef::iterator | begin, |
| StringRef::iterator | end, | ||
| decimalInfo * | D | ||
| ) | [static] |
Definition at line 245 of file APFloat.cpp.
References decDigitValue(), llvm::sys::path::end(), decimalInfo::exponent, decimalInfo::firstSigDigit, decimalInfo::lastSigDigit, decimalInfo::normalizedExponent, readExponent(), and skipLeadingZeroesAndAnyDot().
| static lostFraction lostFractionThroughTruncation | ( | const integerPart * | parts, |
| unsigned int | partCount, | ||
| unsigned int | bits | ||
| ) | [static] |
Definition at line 335 of file APFloat.cpp.
References llvm::integerPartWidth, llvm::lfExactlyHalf, llvm::lfExactlyZero, llvm::lfLessThanHalf, llvm::lfMoreThanHalf, llvm::APInt::tcExtractBit(), and llvm::APInt::tcLSB().
Referenced by shiftRight().
| static unsigned int partAsHex | ( | char * | dst, |
| integerPart | part, | ||
| unsigned int | count, | ||
| const char * | hexDigitChars | ||
| ) | [static] |
Definition at line 521 of file APFloat.cpp.
References llvm::integerPartWidth.
Definition at line 93 of file APFloat.cpp.
References llvm::integerPartWidth.
Referenced by llvm::APFloat::convert(), llvm::APFloat::convertFromZeroExtendedInteger(), llvm::APFloat::convertToInteger(), llvm::APFloat::getLargest(), llvm::APFloat::getSmallestNormalized(), and llvm::APFloat::toString().
| static unsigned int powerOf5 | ( | integerPart * | dst, |
| unsigned int | power | ||
| ) | [static] |
Definition at line 450 of file APFloat.cpp.
References llvm::maxExponent, llvm::maxPowerOfFiveParts, llvm::APInt::tcAssign(), and llvm::APInt::tcFullMultiply().
| static int readExponent | ( | StringRef::iterator | begin, |
| StringRef::iterator | end | ||
| ) | [static] |
Definition at line 111 of file APFloat.cpp.
References llvm::sys::path::begin(), decDigitValue(), and llvm::sys::path::end().
Referenced by interpretDecimal().
| static lostFraction shiftRight | ( | integerPart * | dst, |
| unsigned int | parts, | ||
| unsigned int | bits | ||
| ) | [static] |
Definition at line 357 of file APFloat.cpp.
References lostFractionThroughTruncation(), and llvm::APInt::tcShiftRight().
Referenced by llvm::APFloat::convert().
| static StringRef::iterator skipLeadingZeroesAndAnyDot | ( | StringRef::iterator | begin, |
| StringRef::iterator | end, | ||
| StringRef::iterator * | dot | ||
| ) | [static] |
Definition at line 204 of file APFloat.cpp.
References llvm::sys::path::begin(), and llvm::sys::path::end().
Referenced by interpretDecimal().
| static int totalExponent | ( | StringRef::iterator | p, |
| StringRef::iterator | end, | ||
| int | exponentAdjustment | ||
| ) | [static] |
Definition at line 155 of file APFloat.cpp.
References decDigitValue(), and llvm::sys::path::end().
| static lostFraction trailingHexadecimalFraction | ( | StringRef::iterator | p, |
| StringRef::iterator | end, | ||
| unsigned int | digitValue | ||
| ) | [static] |
Definition at line 304 of file APFloat.cpp.
References llvm::hexDigitValue(), llvm::lfExactlyHalf, llvm::lfExactlyZero, llvm::lfLessThanHalf, and llvm::lfMoreThanHalf.
| static integerPart ulpsFromBoundary | ( | const integerPart * | parts, |
| unsigned int | bits, | ||
| bool | isNearest | ||
| ) | [static] |
Definition at line 405 of file APFloat.cpp.
References llvm::integerPartWidth.
| static char* writeSignedDecimal | ( | char * | dst, |
| int | value | ||
| ) | [static] |
Definition at line 557 of file APFloat.cpp.
References writeUnsignedDecimal().
| static char* writeUnsignedDecimal | ( | char * | dst, |
| unsigned int | n | ||
| ) | [static] |
Definition at line 539 of file APFloat.cpp.
Referenced by writeSignedDecimal().
const char hexDigitsLower[] = "0123456789abcdef0" [static] |
Definition at line 510 of file APFloat.cpp.
const char hexDigitsUpper[] = "0123456789ABCDEF0" [static] |
Definition at line 511 of file APFloat.cpp.
const char infinityL[] = "infinity" [static] |
Definition at line 512 of file APFloat.cpp.
Referenced by llvm::APFloat::convertToHexString().
const char infinityU[] = "INFINITY" [static] |
Definition at line 513 of file APFloat.cpp.
Referenced by llvm::APFloat::convertToHexString().
const char NaNL[] = "nan" [static] |
Definition at line 514 of file APFloat.cpp.
Referenced by llvm::APFloat::convertToHexString().
const char NaNU[] = "NAN" [static] |
Definition at line 515 of file APFloat.cpp.
Referenced by llvm::APFloat::convertToHexString().