LLVM API Documentation

llvm::ConstantFPSDNode Class Reference

#include <SelectionDAGNodes.h>

Inheritance diagram for llvm::ConstantFPSDNode:
[legend]
Collaboration diagram for llvm::ConstantFPSDNode:
[legend]

List of all members.

Public Member Functions

const APFloat & getValueAPF () const
const ConstantFP * getConstantFPValue () const
bool isExactlyValue (double V) const
bool isExactlyValue (const APFloat &V) const
bool isValueValidForType (MVT VT, const APFloat &Val)

Static Public Member Functions

static bool classof (const ConstantFPSDNode *)
static bool classof (const SDNode *N)

Protected Member Functions

 ConstantFPSDNode (bool isTarget, const ConstantFP *val, MVT VT)

Friends

class SelectionDAG


Detailed Description

Definition at line 1801 of file SelectionDAGNodes.h.


Constructor & Destructor Documentation

llvm::ConstantFPSDNode::ConstantFPSDNode ( bool  isTarget,
const ConstantFP *  val,
MVT  VT 
) [inline, protected]

Definition at line 1805 of file SelectionDAGNodes.h.


Member Function Documentation

const APFloat& llvm::ConstantFPSDNode::getValueAPF (  )  const [inline]

const ConstantFP* llvm::ConstantFPSDNode::getConstantFPValue (  )  const [inline]

Definition at line 1812 of file SelectionDAGNodes.h.

Referenced by ExpandConstantFP().

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 1822 of file SelectionDAGNodes.h.

References llvm::APFloat::convert(), llvm::APFloat::PPCDoubleDouble, and llvm::APFloat::rmNearestTiesToEven.

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 73 of file SelectionDAG.cpp.

References llvm::APFloat::bitwiseIsEqual(), and getValueAPF().

bool ConstantFPSDNode::isValueValidForType ( MVT  VT,
const APFloat &  Val 
)

static bool llvm::ConstantFPSDNode::classof ( const ConstantFPSDNode *   )  [inline, static]

Definition at line 1836 of file SelectionDAGNodes.h.

static bool llvm::ConstantFPSDNode::classof ( const SDNode *  N  )  [inline, static]

Reimplemented from llvm::SDNode.

Definition at line 1837 of file SelectionDAGNodes.h.

References llvm::ISD::ConstantFP, llvm::SDNode::getOpcode(), and llvm::ISD::TargetConstantFP.


Friends And Related Function Documentation

friend class SelectionDAG [friend]

Reimplemented from llvm::SDNode.

Definition at line 1804 of file SelectionDAGNodes.h.


The documentation for this class was generated from the following files: