LLVM API Documentation
#include <FoldingSet.h>
Public Member Functions | |
FoldingSetNodeID () | |
FoldingSetNodeID (FoldingSetNodeIDRef Ref) | |
void | AddPointer (const void *Ptr) |
void | AddInteger (signed I) |
void | AddInteger (unsigned I) |
void | AddInteger (long I) |
void | AddInteger (unsigned long I) |
void | AddInteger (long long I) |
void | AddInteger (unsigned long long I) |
void | AddBoolean (bool B) |
void | AddString (StringRef String) |
void | AddNodeID (const FoldingSetNodeID &ID) |
template<typename T > | |
void | Add (const T &x) |
void | clear () |
unsigned | ComputeHash () const |
bool | operator== (const FoldingSetNodeID &RHS) const |
bool | operator== (const FoldingSetNodeIDRef RHS) const |
bool | operator!= (const FoldingSetNodeID &RHS) const |
bool | operator!= (const FoldingSetNodeIDRef RHS) const |
bool | operator< (const FoldingSetNodeID &RHS) const |
bool | operator< (const FoldingSetNodeIDRef RHS) const |
FoldingSetNodeIDRef | Intern (BumpPtrAllocator &Allocator) const |
FoldingSetNodeID - This class is used to gather all the unique data bits of a node. When all the bits are gathered this class is used to produce a hash value for the node.
Definition at line 296 of file FoldingSet.h.
llvm::FoldingSetNodeID::FoldingSetNodeID | ( | ) | [inline] |
Definition at line 302 of file FoldingSet.h.
llvm::FoldingSetNodeID::FoldingSetNodeID | ( | FoldingSetNodeIDRef | Ref | ) | [inline] |
Definition at line 304 of file FoldingSet.h.
void llvm::FoldingSetNodeID::Add | ( | const T & | x | ) | [inline] |
Definition at line 321 of file FoldingSet.h.
Referenced by llvm::ImmutableListImpl< T >::Profile(), llvm::APFloat::Profile(), and llvm::FoldingSetTrait< std::pair< T1, T2 > >::Profile().
void llvm::FoldingSetNodeID::AddBoolean | ( | bool | B | ) | [inline] |
Definition at line 316 of file FoldingSet.h.
References AddInteger().
Referenced by AddBinaryNodeIDCustom(), AddNodeIDCustom(), llvm::SelectionDAG::getConstant(), and llvm::ImutProfileInfo< bool >::Profile().
void FoldingSetNodeID::AddInteger | ( | signed | I | ) |
Definition at line 60 of file FoldingSet.cpp.
References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().
Referenced by AddBoolean(), AddInteger(), AddNodeIDCustom(), AddNodeIDOpcode(), AddNodeIDOperands(), llvm::SystemZConstantPoolValue::addSelectionDAGCSEId(), llvm::ARMConstantPoolValue::addSelectionDAGCSEId(), llvm::Attribute::get(), llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getAddRecExpr(), llvm::SelectionDAG::getAddrSpaceCast(), llvm::SelectionDAG::getAtomic(), llvm::SelectionDAG::getBlockAddress(), llvm::ScalarEvolution::getConstant(), llvm::SelectionDAG::getConstantPool(), llvm::SelectionDAG::getFrameIndex(), llvm::SelectionDAG::getGlobalAddress(), llvm::SelectionDAG::getIndexedStore(), llvm::SelectionDAG::getJumpTable(), llvm::SelectionDAG::getLoad(), llvm::SelectionDAG::getMemIntrinsicNode(), llvm::ScalarEvolution::getMulExpr(), llvm::SelectionDAG::getRegister(), llvm::ScalarEvolution::getSignExtendExpr(), llvm::SelectionDAG::getStore(), llvm::SelectionDAG::getTargetIndex(), llvm::ScalarEvolution::getTruncateExpr(), llvm::SelectionDAG::getTruncStore(), llvm::ScalarEvolution::getUDivExpr(), llvm::ScalarEvolution::getUnknown(), llvm::SelectionDAG::getVectorShuffle(), llvm::SelectionDAG::getVTList(), llvm::ScalarEvolution::getZeroExtendExpr(), llvm::DIEAbbrevData::Profile(), llvm::AttributeImpl::Profile(), llvm::DIEAbbrev::Profile(), llvm::AttributeSetImpl::Profile(), llvm::APSInt::Profile(), llvm::APInt::Profile(), llvm::ImutProfileInteger< T >::Profile(), ProfileBitsInit(), and ProfileListInit().
void FoldingSetNodeID::AddInteger | ( | unsigned | I | ) |
Definition at line 63 of file FoldingSet.cpp.
References llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().
void FoldingSetNodeID::AddInteger | ( | long | I | ) |
Definition at line 66 of file FoldingSet.cpp.
References AddInteger().
void FoldingSetNodeID::AddInteger | ( | unsigned long | I | ) |
Definition at line 69 of file FoldingSet.cpp.
References AddInteger(), and llvm_unreachable.
void FoldingSetNodeID::AddInteger | ( | long long | I | ) |
Definition at line 78 of file FoldingSet.cpp.
References AddInteger().
void FoldingSetNodeID::AddInteger | ( | unsigned long long | I | ) |
Definition at line 81 of file FoldingSet.cpp.
References AddInteger(), and llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().
void FoldingSetNodeID::AddNodeID | ( | const FoldingSetNodeID & | ID | ) |
Definition at line 139 of file FoldingSet.cpp.
References llvm::SmallVectorImpl< T >::append(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), and llvm::SmallVectorTemplateCommon< T, typename >::end().
Referenced by llvm::FastFoldingSetNode::Profile().
void FoldingSetNodeID::AddPointer | ( | const void * | Ptr | ) |
Add* - Add various data types to Bit data.
Definition at line 52 of file FoldingSet.cpp.
References llvm::SmallVectorImpl< T >::append().
Referenced by AddNodeIDCustom(), AddNodeIDOperands(), AddNodeIDValueTypes(), llvm::SystemZConstantPoolValue::addSelectionDAGCSEId(), llvm::ARMConstantPoolConstant::addSelectionDAGCSEId(), llvm::ARMConstantPoolMBB::addSelectionDAGCSEId(), llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getAddRecExpr(), llvm::SelectionDAG::getBasicBlock(), llvm::SelectionDAG::getBlockAddress(), llvm::SelectionDAG::getConstant(), llvm::ScalarEvolution::getConstant(), llvm::SelectionDAG::getConstantFP(), llvm::SelectionDAG::getConstantPool(), llvm::SelectionDAG::getEHLabel(), llvm::SelectionDAG::getGlobalAddress(), llvm::SelectionDAG::getMDNode(), llvm::ScalarEvolution::getMulExpr(), llvm::SelectionDAG::getRegisterMask(), llvm::ScalarEvolution::getSignExtendExpr(), llvm::SelectionDAG::getSrcValue(), llvm::ScalarEvolution::getTruncateExpr(), llvm::ScalarEvolution::getUDivExpr(), llvm::ScalarEvolution::getUnknown(), llvm::ScalarEvolution::getZeroExtendExpr(), llvm::ImmutableListImpl< T >::Profile(), llvm::ImmutableList< T >::Profile(), llvm::Attribute::Profile(), llvm::MDNode::Profile(), llvm::AttributeSetImpl::Profile(), llvm::ImmutableMap< KeyT, ValT, ValInfo >::Profile(), llvm::ImmutableMapRef< KeyT, ValT, ValInfo >::Profile(), llvm::FoldingSetTrait< T * >::Profile(), llvm::ImutProfileInfo< T * >::Profile(), llvm::ImmutableSet< ValT, ValInfo >::Profile(), llvm::ImmutableSetRef< ValT, ValInfo >::Profile(), ProfileBitsInit(), ProfileDagInit(), and ProfileListInit().
void FoldingSetNodeID::AddString | ( | StringRef | String | ) |
Definition at line 87 of file FoldingSet.cpp.
References llvm::SmallVectorImpl< T >::append(), llvm::StringRef::data(), llvm::sys::IsBigEndianHost, llvm::sys::IsLittleEndianHost, llvm::SmallVectorTemplateBase< T, isPodLike >::push_back(), and llvm::StringRef::size().
Referenced by llvm::ARMConstantPoolSymbol::addSelectionDAGCSEId(), llvm::Attribute::get(), llvm::AttributeImpl::Profile(), and ProfileDagInit().
void llvm::FoldingSetNodeID::clear | ( | ) | [inline] |
clear - Clear the accumulated profile, allowing this FoldingSetNodeID object to be used to compute a new profile.
Definition at line 325 of file FoldingSet.h.
References llvm::SmallVectorImpl< T >::clear().
Referenced by llvm::FoldingSetImpl::FindNodeOrInsertPos().
unsigned FoldingSetNodeID::ComputeHash | ( | ) | const |
ComputeHash - Compute a strong hash value for this FoldingSetNodeID, used to lookup the node in the FoldingSetImpl.
Definition at line 145 of file FoldingSet.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::data(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
Referenced by llvm::DefaultFoldingSetTrait< T >::ComputeHash(), llvm::DefaultContextualFoldingSetTrait< T, Ctx >::ComputeHash(), and llvm::FoldingSetImpl::FindNodeOrInsertPos().
FoldingSetNodeIDRef FoldingSetNodeID::Intern | ( | BumpPtrAllocator & | Allocator | ) | const |
Intern - Copy this node's data to a memory region allocated from the given allocator and return a FoldingSetNodeIDRef describing the interned data.
Definition at line 175 of file FoldingSet.cpp.
References llvm::BumpPtrAllocatorImpl< AllocatorT, SlabSize, SizeThreshold >::Allocate(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), llvm::SmallVectorTemplateCommon< T, typename >::end(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
Referenced by llvm::ScalarEvolution::getAddExpr(), llvm::ScalarEvolution::getAddRecExpr(), llvm::ScalarEvolution::getConstant(), llvm::ScalarEvolution::getMulExpr(), llvm::ScalarEvolution::getSignExtendExpr(), llvm::ScalarEvolution::getTruncateExpr(), llvm::ScalarEvolution::getUDivExpr(), llvm::ScalarEvolution::getUnknown(), llvm::SelectionDAG::getVTList(), and llvm::ScalarEvolution::getZeroExtendExpr().
bool llvm::FoldingSetNodeID::operator!= | ( | const FoldingSetNodeID & | RHS | ) | const [inline] |
Definition at line 336 of file FoldingSet.h.
bool llvm::FoldingSetNodeID::operator!= | ( | const FoldingSetNodeIDRef | RHS | ) | const [inline] |
Definition at line 337 of file FoldingSet.h.
bool FoldingSetNodeID::operator< | ( | const FoldingSetNodeID & | RHS | ) | const |
Used to compare the "ordering" of two nodes as defined by the profiled bits and their ordering defined by memcmp().
Definition at line 163 of file FoldingSet.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::data(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
bool FoldingSetNodeID::operator< | ( | const FoldingSetNodeIDRef | RHS | ) | const |
Definition at line 167 of file FoldingSet.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::data(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
bool FoldingSetNodeID::operator== | ( | const FoldingSetNodeID & | RHS | ) | const |
operator== - Used to compare two nodes to each other.
Definition at line 151 of file FoldingSet.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::data(), and llvm::SmallVectorTemplateCommon< T, typename >::size().
bool FoldingSetNodeID::operator== | ( | const FoldingSetNodeIDRef | RHS | ) | const |
operator== - Used to compare two nodes to each other.
Definition at line 157 of file FoldingSet.cpp.
References llvm::SmallVectorTemplateCommon< T, typename >::data(), and llvm::SmallVectorTemplateCommon< T, typename >::size().