LLVM: llvm::PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info (original) (raw)
PointerIntPair - This class implements a pair of a pointer and small integer. More...
#include "[llvm/ADT/PointerIntPair.h](PointerIntPair%5F8h%5Fsource.html)"
Public Member Functions | |
---|---|
constexpr | PointerIntPair ()=default |
PointerIntPair (PointerTy PtrVal, IntType IntVal) | |
PointerIntPair (PointerTy PtrVal) | |
PointerTy | getPointer () const |
IntType | getInt () const |
void | setPointer (PointerTy PtrVal) & |
void | setInt (IntType IntVal) & |
void | initWithPointer (PointerTy PtrVal) & |
void | setPointerAndInt (PointerTy PtrVal, IntType IntVal) & |
PointerTy const * | getAddrOfPointer () const |
PointerTy * | getAddrOfPointer () |
void * | getOpaqueValue () const |
void | setFromOpaqueValue (void *Val) & |
bool | operator== (const PointerIntPair &RHS) const |
bool | operator!= (const PointerIntPair &RHS) const |
bool | operator< (const PointerIntPair &RHS) const |
bool | operator> (const PointerIntPair &RHS) const |
bool | operator<= (const PointerIntPair &RHS) const |
bool | operator>= (const PointerIntPair &RHS) const |
template<typename PointerTy, unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
class llvm::PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info >
PointerIntPair - This class implements a pair of a pointer and small integer.
It is designed to represent this in the space required by one pointer by bitmangling the integer into the low part of the pointer. This can only be done for small integers: typically up to 3 bits, but it depends on the number of bits available according to PointerLikeTypeTraits for the type.
Note that PointerIntPair always puts the IntVal part in the highest bits possible. For example, PointerIntPair<void*, 1, bool> will put the bit for the bool into bit #2, not bit #0, which allows the low two bits to be used for something else. For example, this allows: PointerIntPair<PointerIntPair<void*, 1, bool>, 1, bool> ... and the two bools will land in different bits.
Definition at line 80 of file PointerIntPair.h.
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
◆ PointerIntPair() [2/3]
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
◆ PointerIntPair() [3/3]
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
◆ getAddrOfPointer() [1/2]
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
◆ getAddrOfPointer() [2/2]
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
◆ getFromOpaqueValue() [1/2]
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
◆ getFromOpaqueValue() [2/2]
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
◆ getInt()
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
Definition at line 96 of file PointerIntPair.h.
Referenced by llvm::GlobalsAAResult::FunctionInfo::addModRefInfo(), emitNonLazySymbolPointer(), llvm::get(), llvm::ValueInfo::getAccessSpecifier(), llvm::cfg::Update< NodePtr >::getKind(), llvm::GlobalsAAResult::FunctionInfo::getModRefInfo(), llvm::ValueInfo::haveGVs(), llvm::MCSectionELF::isComdat(), llvm::RecordVal::isNonconcreteOK(), llvm::ValueInfo::isReadOnly(), llvm::RegionNodeBase< Tr >::isSubRegion(), llvm::RecordVal::isTemplateArg(), llvm::ValueInfo::isValidAccessSpecifier(), llvm::ValueInfo::isWriteOnly(), llvm::GlobalsAAResult::FunctionInfo::mayReadAnyGlobal(), llvm::GlobalsAAResult::FunctionInfo::setMayReadAnyGlobal(), llvm::ValueInfo::setReadOnly(), llvm::ValueInfo::setWriteOnly(), llvm::IntervalMapImpl::NodeRef::size(), and llvm::PtrUseVisitor< DerivedT >::visitPtr().
◆ getOpaqueValue()
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
◆ getPointer()
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
Definition at line 94 of file PointerIntPair.h.
Referenced by llvm::GlobalsAAResult::FunctionInfo::addFunctionInfo(), llvm::GlobalsAAResult::FunctionInfo::addModRefInfoForGlobal(), emitNonLazySymbolPointer(), llvm::GlobalsAAResult::FunctionInfo::eraseModRefInfoForGlobal(), llvm::GlobalsAAResult::FunctionInfo::FunctionInfo(), llvm::IntervalMapImpl::NodeRef::get(), llvm::get(), llvm::PointerIntPair< PointerTy, IntBits, IntType, PtrTraits, Info >::getAddrOfPointer(), llvm::TargetLoweringObjectFileMachO::getCFIPersonalitySymbol(), llvm::RegionNodeBase< Tr >::getEntry(), llvm::MCSectionELF::getGroup(), llvm::TargetLoweringObjectFileMachO::getIndirectSymViaGOTPCRel(), llvm::GlobalsAAResult::FunctionInfo::getModRefInfoForGlobal(), llvm::ValueInfo::getRef(), llvm::cfg::Update< NodePtr >::getTo(), llvm::TargetLoweringObjectFileELF::getTTypeGlobalReference(), llvm::TargetLoweringObjectFileMachO::getTTypeGlobalReference(), llvm::SparcELFTargetObjectFile::getTTypeGlobalReference(), llvm::RecordVal::getType(), llvm::SlotIndex::isValid(), llvm::GlobalsAAResult::FunctionInfo::operator=(), llvm::IntervalMapImpl::NodeRef::operator==(), llvm::IntervalMapImpl::NodeRef::subtree(), llvm::PtrUseVisitor< DerivedT >::visitPtr(), and llvm::GlobalsAAResult::FunctionInfo::~FunctionInfo().
◆ initWithPointer()
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
◆ operator!=()
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
◆ operator<()
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
◆ operator<=()
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
◆ operator==()
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
◆ operator>()
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
◆ operator>=()
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
◆ setFromOpaqueValue()
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
◆ setInt()
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
◆ setPointer()
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
◆ setPointerAndInt()
template<typename PointerTy , unsigned IntBits, typename IntType = unsigned, typename PtrTraits = PointerLikeTypeTraits, typename Info = PointerIntPairInfo<PointerTy, IntBits, PtrTraits>>
The documentation for this class was generated from the following file:
- include/llvm/ADT/PointerIntPair.h