Use MachineBasicBlock::transferSuccessors.
[oota-llvm.git] / include / llvm / ADT / APFloat.h
index eec87d8f73efa7f74eff044c6d18743f790de3c6..b3d3a061e5fcdfca08f85fefc1bfa4eaf5f2a4cf 100644 (file)
@@ -2,8 +2,8 @@
 //
 //                     The LLVM Compiler Infrastructure
 //
-// This file was developed by Neil Booth and is distributed under the
-// University of Illinois Open Source License. See LICENSE.TXT for details.
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
 //
 //===----------------------------------------------------------------------===//
 //
@@ -113,11 +113,11 @@ namespace llvm {
   /* When bits of a floating point number are truncated, this enum is
      used to indicate what fraction of the LSB those bits represented.
      It essentially combines the roles of guard and sticky bits.  */
-  enum lostFraction {          // Example of truncated bits:
-    lfExactlyZero,             // 000000
-    lfLessThanHalf,            // 0xxxxx  x's not all zero
-    lfExactlyHalf,             // 100000
-    lfMoreThanHalf             // 1xxxxx  x's not all zero
+  enum lostFraction {           // Example of truncated bits:
+    lfExactlyZero,              // 000000
+    lfLessThanHalf,             // 0xxxxx  x's not all zero
+    lfExactlyHalf,              // 100000
+    lfMoreThanHalf              // 1xxxxx  x's not all zero
   };
 
   class APFloat {
@@ -181,6 +181,10 @@ namespace llvm {
     APFloat(const APFloat &);
     ~APFloat();
     
+    /// Profile - Used to insert APFloat objects, or objects that contain
+    ///  APFloat objects, into FoldingSets.
+    void Profile(FoldingSetNodeID& NID) const;
+    
     /// @brief Used by the Bitcode serializer to emit APInts to Bitcode.
     void Emit(Serializer& S) const;
     
@@ -203,7 +207,9 @@ namespace llvm {
     /* Conversions.  */
     opStatus convert(const fltSemantics &, roundingMode);
     opStatus convertToInteger(integerPart *, unsigned int, bool,
-                             roundingMode) const;
+                              roundingMode) const;
+    opStatus convertFromAPInt(const APInt &,
+                              bool, roundingMode);
     opStatus convertFromSignExtendedInteger(const integerPart *, unsigned int,
                                             bool, roundingMode);
     opStatus convertFromZeroExtendedInteger(const integerPart *, unsigned int,
@@ -238,6 +244,7 @@ namespace llvm {
     bool isZero() const { return category == fcZero; }
     bool isNonZero() const { return category != fcZero; }
     bool isNaN() const { return category == fcNaN; }
+    bool isInfinity() const { return category == fcInfinity; }
     bool isNegative() const { return sign; }
     bool isPosZero() const { return isZero() && !isNegative(); }
     bool isNegZero() const { return isZero() && isNegative(); }