LLVM
8.0.1
|
#include "llvm/CodeGen/SelectionDAGNodes.h"
Public Member Functions | |
const APFloat & | getValueAPF () const |
const ConstantFP * | getConstantFPValue () const |
bool | isZero () const |
Return true if the value is positive or negative zero. More... | |
bool | isNaN () const |
Return true if the value is a NaN. More... | |
bool | isInfinity () const |
Return true if the value is an infinity. More... | |
bool | isNegative () const |
Return true if the value is negative. More... | |
bool | isExactlyValue (double V) const |
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. More... | |
bool | 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. More... | |
Public Member Functions inherited from llvm::SDNode | |
unsigned | getOpcode () const |
Return the SelectionDAG opcode value for this node. More... | |
bool | isTargetOpcode () const |
Test if this node has a target-specific opcode (in the <target>ISD namespace). More... | |
bool | isTargetMemoryOpcode () const |
Test if this node has a target-specific memory-referencing opcode (in the <target>ISD namespace and greater than FIRST_TARGET_MEMORY_OPCODE). More... | |
bool | isUndef () const |
Return true if the type of the node type undefined. More... | |
bool | isMemIntrinsic () const |
Test if this node is a memory intrinsic (with valid pointer information). More... | |
bool | isStrictFPOpcode () |
Test if this node is a strict floating point pseudo-op. More... | |
bool | isMachineOpcode () const |
Test if this node has a post-isel opcode, directly corresponding to a MachineInstr opcode. More... | |
unsigned | getMachineOpcode () const |
This may only be called if isMachineOpcode returns true. More... | |
bool | getHasDebugValue () const |
void | setHasDebugValue (bool b) |
bool | isDivergent () const |
bool | use_empty () const |
Return true if there are no uses of this node. More... | |
bool | hasOneUse () const |
Return true if there is exactly one use of this node. More... | |
size_t | use_size () const |
Return the number of uses of this node. More... | |
int | getNodeId () const |
Return the unique node id. More... | |
void | setNodeId (int Id) |
Set unique node id. More... | |
unsigned | getIROrder () const |
Return the node ordering. More... | |
void | setIROrder (unsigned Order) |
Set the node ordering. More... | |
const DebugLoc & | getDebugLoc () const |
Return the source location info. More... | |
void | setDebugLoc (DebugLoc dl) |
Set source location info. More... | |
use_iterator | use_begin () const |
Provide iteration support to walk over all uses of an SDNode. More... | |
iterator_range< use_iterator > | uses () |
iterator_range< use_iterator > | uses () const |
bool | hasNUsesOfValue (unsigned NUses, unsigned Value) const |
Return true if there are exactly NUSES uses of the indicated value. More... | |
bool | hasAnyUseOfValue (unsigned Value) const |
Return true if there are any use of the indicated value. More... | |
bool | isOnlyUserOf (const SDNode *N) const |
Return true if this node is the only use of N. More... | |
bool | isOperandOf (const SDNode *N) const |
Return true if this node is an operand of N. More... | |
bool | isPredecessorOf (const SDNode *N) const |
Return true if this node is a predecessor of N. More... | |
bool | hasPredecessor (const SDNode *N) const |
Return true if N is a predecessor of this node. More... | |
unsigned | getNumOperands () const |
Return the number of values used by this operation. More... | |
uint64_t | getConstantOperandVal (unsigned Num) const |
Helper method returns the integer value of a ConstantSDNode operand. More... | |
const SDValue & | getOperand (unsigned Num) const |
op_iterator | op_begin () const |
op_iterator | op_end () const |
ArrayRef< SDUse > | ops () const |
iterator_range< value_op_iterator > | op_values () const |
SDVTList | getVTList () const |
SDNode * | getGluedNode () const |
If this node has a glue operand, return the node to which the glue operand points. More... | |
SDNode * | getGluedUser () const |
If this node has a glue value with a user, return the user (there is at most one). More... | |
const SDNodeFlags | getFlags () const |
void | setFlags (SDNodeFlags NewFlags) |
bool | isFast () |
void | intersectFlagsWith (const SDNodeFlags Flags) |
Clear any flags in this node that aren't also set in Flags. More... | |
unsigned | getNumValues () const |
Return the number of values defined/returned by this operator. More... | |
EVT | getValueType (unsigned ResNo) const |
Return the type of a specified result. More... | |
MVT | getSimpleValueType (unsigned ResNo) const |
Return the type of a specified result as a simple type. More... | |
unsigned | getValueSizeInBits (unsigned ResNo) const |
Returns MVT::getSizeInBits(getValueType(ResNo)). More... | |
value_iterator | value_begin () const |
value_iterator | value_end () const |
std::string | getOperationName (const SelectionDAG *G=nullptr) const |
Return the opcode of this operation for printing. More... | |
void | print_types (raw_ostream &OS, const SelectionDAG *G) const |
void | print_details (raw_ostream &OS, const SelectionDAG *G) const |
void | print (raw_ostream &OS, const SelectionDAG *G=nullptr) const |
void | printr (raw_ostream &OS, const SelectionDAG *G=nullptr) const |
void | printrFull (raw_ostream &O, const SelectionDAG *G=nullptr) const |
Print a SelectionDAG node and all children down to the leaves. More... | |
void | printrWithDepth (raw_ostream &O, const SelectionDAG *G=nullptr, unsigned depth=100) const |
Print a SelectionDAG node and children up to depth "depth." The given SelectionDAG allows target-specific nodes to be printed in human-readable form. More... | |
void | dump () const |
Dump this node, for debugging. More... | |
void | dumpr () const |
Dump (recursively) this node and its use-def subgraph. More... | |
void | dump (const SelectionDAG *G) const |
Dump this node, for debugging. More... | |
void | dumpr (const SelectionDAG *G) const |
Dump (recursively) this node and its use-def subgraph. More... | |
void | dumprFull (const SelectionDAG *G=nullptr) const |
printrFull to dbgs(). More... | |
void | dumprWithDepth (const SelectionDAG *G=nullptr, unsigned depth=100) const |
printrWithDepth to dbgs(). More... | |
void | Profile (FoldingSetNodeID &ID) const |
Gather unique data for the node. More... | |
void | addUse (SDUse &U) |
This method should only be used by the SDUse class. More... | |
Public Member Functions inherited from llvm::FoldingSetBase::Node | |
Node ()=default | |
void * | getNextInBucket () const |
void | SetNextInBucket (void *N) |
Public Member Functions inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< SDNode, Options... >::type > | |
self_iterator | getIterator () |
const_self_iterator | getIterator () const |
reverse_self_iterator | getReverseIterator () |
const_reverse_self_iterator | getReverseIterator () const |
bool | isSentinel () const |
Check whether this is the sentinel node. More... | |
Static Public Member Functions | |
static bool | isValueValidForType (EVT VT, const APFloat &Val) |
static bool | classof (const SDNode *N) |
Static Public Member Functions inherited from llvm::SDNode | |
static use_iterator | use_end () |
static bool | hasPredecessorHelper (const SDNode *N, SmallPtrSetImpl< const SDNode *> &Visited, SmallVectorImpl< const SDNode *> &Worklist, unsigned int MaxSteps=0, bool TopologicalPrune=false) |
Returns true if N is a predecessor of any node in Worklist. More... | |
static bool | areOnlyUsersOf (ArrayRef< const SDNode *> Nodes, const SDNode *N) |
Return true if all the users of N are contained in Nodes. More... | |
static const char * | getIndexedModeName (ISD::MemIndexedMode AM) |
Friends | |
class | SelectionDAG |
Definition at line 1539 of file SelectionDAGNodes.h.
Definition at line 1580 of file SelectionDAGNodes.h.
References llvm::ISD::ConstantFP, llvm::SDNode::getOpcode(), llvm::isAllOnesConstant(), llvm::isAllOnesOrAllOnesSplat(), llvm::isBitwiseNot(), llvm::isConstOrConstSplat(), llvm::isConstOrConstSplatFP(), llvm::isNullConstant(), llvm::isNullFPConstant(), llvm::isNullOrNullSplat(), llvm::isOneConstant(), llvm::isOneOrOneSplat(), llvm::peekThroughBitcasts(), llvm::peekThroughOneUseBitcasts(), and llvm::ISD::TargetConstantFP.
|
inline |
Definition at line 1551 of file SelectionDAGNodes.h.
Referenced by FoldIntToFPToInt().
Definition at line 1550 of file SelectionDAGNodes.h.
References llvm::ConstantFP::getValueAPF().
Referenced by llvm::SparcTargetLowering::bitcastConstantFPToInt(), CanCombineFCOPYSIGN_EXTEND_ROUND(), FoldIntToFPToInt(), GetFPLibCall(), getMad64_32(), GetPromotionOpcode(), getSplatConstantFP(), isNEONModifiedImm(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::HexagonDAGToDAGISel::SelectConstantFP(), ShrinkLoadReplaceStoreWithStore(), and visitFMinMax().
|
inline |
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 1573 of file SelectionDAGNodes.h.
References llvm::ConstantFP::getValueAPF(), and llvm::APFloat::isExactlyValue().
Referenced by getSplatConstantFP(), and isContractable().
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 114 of file SelectionDAG.cpp.
|
inline |
Return true if the value is an infinity.
Definition at line 1560 of file SelectionDAGNodes.h.
References llvm::ConstantFP::isInfinity().
Referenced by getPermuteMask().
|
inline |
Return true if the value is a NaN.
Definition at line 1557 of file SelectionDAGNodes.h.
References llvm::ConstantFP::isNaN().
|
inline |
Return true if the value is negative.
Definition at line 1563 of file SelectionDAGNodes.h.
References llvm::ConstantFP::isNegative().
Referenced by foldFreeOpFromSelect(), getPermuteMask(), isContractable(), and llvm::isNullFPConstant().
Definition at line 118 of file SelectionDAG.cpp.
References llvm::lltok::APFloat, assert(), llvm::SelectionDAG::EVTToAPFloatSemantics(), llvm::EVT::isFloatingPoint(), and llvm::APFloatBase::rmNearestTiesToEven.
|
inline |
Return true if the value is positive or negative zero.
Definition at line 1554 of file SelectionDAGNodes.h.
References llvm::ConstantFP::isZero().
Referenced by isContractable(), llvm::isNullFPConstant(), llvm::AVRTargetLowering::LowerAsmOperandForConstraint(), mayTailCallThisCC(), and replaceShuffleOfInsert().
|
friend |
Definition at line 1540 of file SelectionDAGNodes.h.