LLVM API Documentation
#include <SelectionDAGNodes.h>
Public Member Functions | |
const APFloat & | getValueAPF () const |
const ConstantFP * | getConstantFPValue () const |
bool | isZero () const |
isZero - Return true if the value is positive or negative zero. | |
bool | isNaN () const |
isNaN - Return true if the value is a NaN. | |
bool | isExactlyValue (double V) const |
bool | isExactlyValue (const APFloat &V) const |
Static Public Member Functions | |
static bool | isValueValidForType (EVT VT, const APFloat &Val) |
static bool | classof (const SDNode *N) |
Friends | |
class | SelectionDAG |
Definition at line 1389 of file SelectionDAGNodes.h.
static bool llvm::ConstantFPSDNode::classof | ( | const SDNode * | N | ) | [inline, static] |
Definition at line 1426 of file SelectionDAGNodes.h.
References llvm::ISD::ConstantFP, llvm::SDNode::getOpcode(), and llvm::ISD::TargetConstantFP.
const ConstantFP* llvm::ConstantFPSDNode::getConstantFPValue | ( | ) | const [inline] |
Definition at line 1399 of file SelectionDAGNodes.h.
const APFloat& llvm::ConstantFPSDNode::getValueAPF | ( | ) | const [inline] |
Definition at line 1398 of file SelectionDAGNodes.h.
Referenced by FoldOperand(), llvm::SelectionDAG::getNode(), isConstVecPow2(), and selectCCOpsAreFMaxCompatible().
bool llvm::ConstantFPSDNode::isExactlyValue | ( | double | V | ) | const [inline] |
isExactlyValue - We don't rely on operator== working on double values, as it returns true for things that are clearly not equal, like -0.0 and 0.0. As such, this method can be used to do an exact bit-for-bit comparison of two floating point values. We leave the version with the double argument here because it's just so convenient to write "2.0" and the like. Without this function we'd have to duplicate its logic everywhere it's called.
Definition at line 1415 of file SelectionDAGNodes.h.
References llvm::APFloat::convert(), and llvm::APFloat::rmNearestTiesToEven.
Referenced by llvm::SelectionDAG::getNode().
bool ConstantFPSDNode::isExactlyValue | ( | const APFloat & | V | ) | const |
isExactlyValue - We don't rely on operator== working on double values, as it returns true for things that are clearly not equal, like -0.0 and 0.0. As such, this method can be used to do an exact bit-for-bit comparison of two floating point values.
Definition at line 74 of file SelectionDAG.cpp.
bool llvm::ConstantFPSDNode::isNaN | ( | ) | const [inline] |
isNaN - Return true if the value is a NaN.
Definition at line 1405 of file SelectionDAGNodes.h.
bool ConstantFPSDNode::isValueValidForType | ( | EVT | VT, |
const APFloat & | Val | ||
) | [static] |
Definition at line 78 of file SelectionDAG.cpp.
References llvm::lltok::APFloat, llvm::SelectionDAG::EVTToAPFloatSemantics(), llvm::EVT::isFloatingPoint(), and llvm::APFloat::rmNearestTiesToEven.
bool llvm::ConstantFPSDNode::isZero | ( | ) | const [inline] |
isZero - Return true if the value is positive or negative zero.
Definition at line 1402 of file SelectionDAGNodes.h.
Referenced by llvm::SelectionDAG::getNode().
friend class SelectionDAG [friend] |
Reimplemented from llvm::SDNode.
Definition at line 1391 of file SelectionDAGNodes.h.