LLVM: llvm::BitVector Class Reference (original) (raw)
#include "[llvm/ADT/BitVector.h](BitVector%5F8h%5Fsource.html)"
| Public Member Functions | |
|---|---|
| const_set_bits_iterator | set_bits_begin () const |
| const_set_bits_iterator | set_bits_end () const |
| iterator_range< const_set_bits_iterator > | set_bits () const |
| BitVector ()=default | |
| BitVector default ctor - Creates an empty bitvector. | |
| BitVector (unsigned s, bool t=false) | |
| BitVector ctor - Creates a bitvector of specified number of bits. | |
| bool | empty () const |
| empty - Tests whether there are no bits in this bitvector. | |
| size_type | size () const |
| size - Returns the number of bits in this bitvector. | |
| size_type | count () const |
| count - Returns the number of bits which are set. | |
| bool | any () const |
| any - Returns true if any bit is set. | |
| bool | all () const |
| all - Returns true if all bits are set. | |
| bool | none () const |
| none - Returns true if none of the bits are set. | |
| int | find_first_in (unsigned Begin, unsigned End, bool Set=true) const |
| find_first_in - Returns the index of the first set / unset bit, depending on Set, in the range [Begin, End). | |
| int | find_last_in (unsigned Begin, unsigned End) const |
| find_last_in - Returns the index of the last set bit in the range [Begin, End). | |
| int | find_first_unset_in (unsigned Begin, unsigned End) const |
| find_first_unset_in - Returns the index of the first unset bit in the range [Begin, End). | |
| int | find_last_unset_in (unsigned Begin, unsigned End) const |
| find_last_unset_in - Returns the index of the last unset bit in the range [Begin, End). | |
| int | find_first () const |
| find_first - Returns the index of the first set bit, -1 if none of the bits are set. | |
| int | find_last () const |
| find_last - Returns the index of the last set bit, -1 if none of the bits are set. | |
| int | find_next (unsigned Prev) const |
| find_next - Returns the index of the next set bit following the "Prev" bit. | |
| int | find_prev (unsigned PriorTo) const |
| find_prev - Returns the index of the first set bit that precedes the the bit at PriorTo. | |
| int | find_first_unset () const |
| find_first_unset - Returns the index of the first unset bit, -1 if all of the bits are set. | |
| int | find_next_unset (unsigned Prev) const |
| find_next_unset - Returns the index of the next unset bit following the "Prev" bit. | |
| int | find_last_unset () const |
| find_last_unset - Returns the index of the last unset bit, -1 if all of the bits are set. | |
| int | find_prev_unset (unsigned PriorTo) const |
| find_prev_unset - Returns the index of the first unset bit that precedes the bit at PriorTo. | |
| void | clear () |
| clear - Removes all bits from the bitvector. | |
| void | resize (unsigned N, bool t=false) |
| resize - Grow or shrink the bitvector. | |
| void | reserve (unsigned N) |
| BitVector & | set () |
| BitVector & | set (unsigned Idx) |
| BitVector & | set (unsigned I, unsigned E) |
| set - Efficiently set a range of bits in [I, E) | |
| BitVector & | reset () |
| BitVector & | reset (unsigned Idx) |
| BitVector & | reset (unsigned I, unsigned E) |
| reset - Efficiently reset a range of bits in [I, E) | |
| BitVector & | flip () |
| BitVector & | flip (unsigned Idx) |
| reference | operator[] (unsigned Idx) |
| bool | operator[] (unsigned Idx) const |
| bool | back () const |
| Return the last element in the vector. | |
| bool | test (unsigned Idx) const |
| void | push_back (bool Val) |
| void | pop_back () |
| Pop one bit from the end of the vector. | |
| bool | anyCommon (const BitVector &RHS) const |
| Test if any common bits are set. | |
| bool | operator== (const BitVector &RHS) const |
| bool | operator!= (const BitVector &RHS) const |
| BitVector & | operator&= (const BitVector &RHS) |
| Intersection, union, disjoint union. | |
| BitVector & | reset (const BitVector &RHS) |
| reset - Reset bits that are set in RHS. Same as *this &= ~RHS. | |
| bool | test (const BitVector &RHS) const |
| test - Check if (This - RHS) is non-zero. | |
| bool | subsetOf (const BitVector &RHS) const |
| subsetOf - Check if This is a subset of RHS. | |
| BitVector & | operator|= (const BitVector &RHS) |
| BitVector & | operator^= (const BitVector &RHS) |
| BitVector & | operator>>= (unsigned N) |
| BitVector & | operator<<= (unsigned N) |
| void | swap (BitVector &RHS) |
| void | invalid () |
| bool | isInvalid () const |
| ArrayRef< BitWord > | getData () const |
| void | setBitsInMask (const uint32_t *Mask, unsigned MaskWords=~0u) |
| setBitsInMask - Add '1' bits from Mask to this vector. | |
| void | clearBitsInMask (const uint32_t *Mask, unsigned MaskWords=~0u) |
| clearBitsInMask - Clear any bits in this vector that are set in Mask. | |
| void | setBitsNotInMask (const uint32_t *Mask, unsigned MaskWords=~0u) |
| setBitsNotInMask - Add a bit to this vector for every '0' bit in Mask. | |
| void | clearBitsNotInMask (const uint32_t *Mask, unsigned MaskWords=~0u) |
| clearBitsNotInMask - Clear a bit in this vector for every '0' bit in Mask. | |
| size_type | getMemorySize () const |
| Return the size (in bytes) of the bit vector. | |
| size_type | getBitCapacity () const |
Definition at line 101 of file BitVector.h.
◆ const_set_bits_iterator
◆ set_iterator
◆ size_type
| llvm::BitVector::BitVector ( ) | default |
|---|
BitVector default ctor - Creates an empty bitvector.
Referenced by anyCommon(), apply(), flip(), flip(), operator!=(), operator&=(), operator<<=(), operator==(), operator>>=(), operator^=(), operator|=(), llvm::BitVector::reference::reference(), reset(), reset(), reset(), reset(), set(), set(), set(), subsetOf(), swap(), and test().
◆ BitVector() [2/2]
BitVector ctor - Creates a bitvector of specified number of bits.
All bits are initialized to the specified value.
Definition at line 168 of file BitVector.h.
◆ all()
| bool llvm::BitVector::all ( ) const | inline |
|---|
◆ any()
| bool llvm::BitVector::any ( ) const | inline |
|---|
◆ anyCommon()
Test if any common bits are set.
Definition at line 508 of file BitVector.h.
References BitVector(), and RHS.
◆ apply()
template<class F, class... ArgTys>
◆ back()
| bool llvm::BitVector::back ( ) const | inline |
|---|
◆ clear()
| void llvm::BitVector::clear ( ) | inline |
|---|
◆ clearBitsInMask()
◆ clearBitsNotInMask()
◆ count()
| size_type llvm::BitVector::count ( ) const | inline |
|---|
◆ empty()
| bool llvm::BitVector::empty ( ) const | inline |
|---|
◆ find_first()
| int llvm::BitVector::find_first ( ) const | inline |
|---|
◆ find_first_in()
◆ find_first_unset()
| int llvm::BitVector::find_first_unset ( ) const | inline |
|---|
◆ find_first_unset_in()
◆ find_last()
| int llvm::BitVector::find_last ( ) const | inline |
|---|
find_last - Returns the index of the last set bit, -1 if none of the bits are set.
Definition at line 323 of file BitVector.h.
References find_last_in().
◆ find_last_in()
◆ find_last_unset()
| int llvm::BitVector::find_last_unset ( ) const | inline |
|---|
◆ find_last_unset_in()
◆ find_next()
| int llvm::BitVector::find_next ( unsigned Prev) const | inline |
|---|
◆ find_next_unset()
| int llvm::BitVector::find_next_unset ( unsigned Prev) const | inline |
|---|
find_next_unset - Returns the index of the next unset bit following the "Prev" bit.
Returns -1 if all remaining bits are set.
Definition at line 339 of file BitVector.h.
References find_first_unset_in().
◆ find_prev()
| int llvm::BitVector::find_prev ( unsigned PriorTo) const | inline |
|---|
find_prev - Returns the index of the first set bit that precedes the the bit at PriorTo.
Returns -1 if all previous bits are unset.
Definition at line 331 of file BitVector.h.
References find_last_in().
◆ find_prev_unset()
| int llvm::BitVector::find_prev_unset ( unsigned PriorTo) const | inline |
|---|
find_prev_unset - Returns the index of the first unset bit that precedes the bit at PriorTo.
Returns -1 if all previous bits are set.
Definition at line 349 of file BitVector.h.
References find_last_unset_in().
◆ flip() [1/2]
◆ flip() [2/2]
◆ getBitCapacity()
| size_type llvm::BitVector::getBitCapacity ( ) const | inline |
|---|
◆ getData()
| ArrayRef< BitWord > llvm::BitVector::getData ( ) const | inline |
|---|
◆ getMemorySize()
| size_type llvm::BitVector::getMemorySize ( ) const | inline |
|---|
Return the size (in bytes) of the bit vector.
Definition at line 843 of file BitVector.h.
◆ invalid()
| void llvm::BitVector::invalid ( ) | inline |
|---|
◆ isInvalid()
| bool llvm::BitVector::isInvalid ( ) const | inline |
|---|
◆ none()
| bool llvm::BitVector::none ( ) const | inline |
|---|
◆ operator!=()
◆ operator&=()
◆ operator<<=()
◆ operator==()
◆ operator>>=()
◆ operator[]() [1/2]
◆ operator[]() [2/2]
| bool llvm::BitVector::operator[] ( unsigned Idx) const | inline |
|---|
◆ operator^=()
◆ operator|=()
◆ pop_back()
| void llvm::BitVector::pop_back ( ) | inline |
|---|
◆ push_back()
| void llvm::BitVector::push_back ( bool Val) | inline |
|---|
◆ reserve()
| void llvm::BitVector::reserve ( unsigned N) | inline |
|---|
◆ reset() [1/4]
| BitVector & llvm::BitVector::reset ( ) | inline |
|---|
Definition at line 411 of file BitVector.h.
References BitVector().
Referenced by llvm::PPCFrameLowering::assignCalleeSavedSpillSlots(), computeFreeStackSlots(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::BPFFrameLowering::determineCalleeSaves(), llvm::LanaiFrameLowering::determineCalleeSaves(), llvm::PPCFrameLowering::determineCalleeSaves(), llvm::RISCVFrameLowering::determineCalleeSaves(), llvm::SIFrameLowering::determineCalleeSaves(), llvm::XCoreFrameLowering::determineCalleeSaves(), llvm::SIFrameLowering::determineCalleeSavesSGPR(), determineFPRegsToClear(), llvm::TargetRegisterInfo::getAllocatableSet(), llvm::MachineFrameInfo::getPristineRegs(), llvm::Mips16InstrInfo::loadImmediate(), llvm::BuildVectorSDNode::recastRawBits(), llvm::rdf::Liveness::resetKills(), scavengeStackSlot(), and llvm::SIMachineFunctionInfo::shiftWwmVGPRsToLowestRange().
◆ reset() [2/4]
reset - Reset bits that are set in RHS. Same as *this &= ~RHS.
Definition at line 545 of file BitVector.h.
References BitVector(), RHS, and size().
◆ reset() [3/4]
◆ reset() [4/4]
◆ resize()
resize - Grow or shrink the bitvector.
Definition at line 360 of file BitVector.h.
References N.
Referenced by llvm::pdb::UDTLayoutBase::addChildToLayout(), llvm::SIMachineFunctionInfo::allocateVGPRSpillToAGPR(), apply(), llvm::LiveIntervals::checkRegMaskInterference(), computeFreeStackSlots(), llvm::HexagonFrameLowering::determineCalleeSaves(), llvm::TargetFrameLowering::determineCalleeSaves(), llvm::TargetFrameLowering::getCalleeSaves(), llvm::IndexedInstrProfReader::getFunctionBitmap(), llvm::BuildVectorSDNode::getRepeatedSequence(), llvm::BuildVectorSDNode::getSplatValue(), llvm::ScheduleDAGTopologicalSort::GetSubGraph(), operator^=(), operator|=(), pop_back(), push_back(), and llvm::BuildVectorSDNode::recastRawBits().
◆ set() [1/3]
Definition at line 370 of file BitVector.h.
References BitVector().
Referenced by addRegUnits(), llvm::SIMachineFunctionInfo::allocateVGPRSpillToAGPR(), applyBitsNotInRegMaskToRegUnitsMask(), assignCalleeSavedSpillSlots(), llvm::PPCFrameLowering::assignCalleeSavedSpillSlots(), llvm::TargetRegisterInfo::checkAllSuperRegsMarked(), checkNumAlignedDPRCS2Regs(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::ARCFrameLowering::determineCalleeSaves(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::AVRFrameLowering::determineCalleeSaves(), llvm::CSKYFrameLowering::determineCalleeSaves(), llvm::HexagonFrameLowering::determineCalleeSaves(), llvm::LoongArchFrameLowering::determineCalleeSaves(), llvm::M68kFrameLowering::determineCalleeSaves(), llvm::Mips16FrameLowering::determineCalleeSaves(), llvm::PPCFrameLowering::determineCalleeSaves(), llvm::RISCVFrameLowering::determineCalleeSaves(), llvm::SystemZELFFrameLowering::determineCalleeSaves(), llvm::SystemZXPLINKFrameLowering::determineCalleeSaves(), llvm::TargetFrameLowering::determineCalleeSaves(), llvm::X86FrameLowering::determineCalleeSaves(), llvm::XtensaFrameLowering::determineCalleeSaves(), llvm::SIFrameLowering::determineCalleeSavesSGPR(), llvm::finalizeBundle(), llvm::SwitchCG::SwitchLowering::findBitTestClusters(), llvm::ARMFrameLowering::getCalleeSaves(), llvm::TargetFrameLowering::getCalleeSaves(), llvm::BuildVectorSDNode::getConstantRawBits(), getInputSegmentList(), llvm::BasicTTIImplBase< BasicTTIImpl >::getInterleavedMemoryOpCost(), llvm::SystemZTTIImpl::getInterleavedMemoryOpCost(), llvm::IndexedMemProfReader::getMemProfCallerCalleePairs(), llvm::MachineFrameInfo::getPristineRegs(), llvm::ScheduleDAGTopologicalSort::GetSubGraph(), isInterestingPHIIncomingValue(), llvm::LiveRangeCalc::isJointlyDominated(), llvm::dwarf_linker::classic::DWARFLinker::link(), matchIndexAsShuffle(), llvm::BranchFolder::OptimizeFunction(), llvm::optimizeGlobalCtorsList(), llvm::SIFrameLowering::processFunctionBeforeFrameFinalized(), push_back(), llvm::BuildVectorSDNode::recastRawBits(), removeRedundantDbgLocsUsingBackwardScan(), llvm::SmallBitVector::reserve(), llvm::rdf::Liveness::resetKills(), llvm::PPCFrameLowering::restoreCalleeSavedRegisters(), setAliasRegs(), llvm::SystemZRegisterInfo::shouldCoalesce(), llvm::PPCFrameLowering::spillCalleeSavedRegisters(), and llvm::PPCFrameLowering::updateCalleeSaves().
◆ set() [2/3]
◆ set() [3/3]
◆ set_bits()
Definition at line 159 of file BitVector.h.
References llvm::make_range(), set_bits_begin(), and set_bits_end().
Referenced by llvm::PPCFrameLowering::assignCalleeSavedSpillSlots(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::CSKYFrameLowering::determineCalleeSaves(), llvm::TargetLoweringBase::findRepresentativeClass(), findTemporariesForLR(), getInputSegmentList(), llvm::IndexedMemProfReader::getMemProfCallerCalleePairs(), getVariantMatchScore(), isStrictSubset(), isVariantApplicableInContextHelper(), and llvm::SIFrameLowering::processFunctionBeforeFrameFinalized().
◆ set_bits_begin()
| const_set_bits_iterator llvm::BitVector::set_bits_begin ( ) const | inline |
|---|
◆ set_bits_end()
| const_set_bits_iterator llvm::BitVector::set_bits_end ( ) const | inline |
|---|
◆ setBitsInMask()
◆ setBitsNotInMask()
setBitsNotInMask - Add a bit to this vector for every '0' bit in Mask.
Don't resize. This computes "*this |= ~Mask".
Definition at line 738 of file BitVector.h.
◆ size()
| size_type llvm::BitVector::size ( ) const | inline |
|---|
size - Returns the number of bits in this bitvector.
Definition at line 178 of file BitVector.h.
Referenced by apply(), assignCalleeSavedSpillSlots(), llvm::PPCFrameLowering::assignCalleeSavedSpillSlots(), back(), operator&=(), operator==(), operator^=(), operator|=(), llvm::BranchFolder::OptimizeFunction(), pop_back(), llvm::BuildVectorSDNode::recastRawBits(), reset(), reset(), scavengeStackSlot(), and set().
◆ subsetOf()
◆ swap()
| void llvm::BitVector::swap ( BitVector & RHS) | inline |
|---|
◆ test() [1/2]
test - Check if (This - RHS) is non-zero.
This is the same as reset(RHS) and any().
Definition at line 555 of file BitVector.h.
References BitVector(), and RHS.
◆ test() [2/2]
Definition at line 480 of file BitVector.h.
Referenced by addLiveInRegs(), assignCalleeSavedSpillSlots(), llvm::AggressiveAntiDepBreaker::BreakAntiDependencies(), checkNumAlignedDPRCS2Regs(), commitFpm(), llvm::Thumb1InstrInfo::copyPhysReg(), llvm::AArch64FrameLowering::determineCalleeSaves(), llvm::ARMFrameLowering::determineCalleeSaves(), llvm::CSKYFrameLowering::determineCalleeSaves(), llvm::PPCFrameLowering::determineCalleeSaves(), llvm::RISCVFrameLowering::determineCalleeSaves(), llvm::SystemZELFFrameLowering::determineCalleeSaves(), llvm::ARMFrameLowering::emitEpilogue(), findFreePredicateReg(), findTemporariesForLR(), llvm::LoongArchTargetLowering::getRegisterByName(), llvm::RISCVTargetLowering::getRegisterByName(), llvm::SIRegisterInfo::getReservedRegs(), llvm::ScheduleDAGTopologicalSort::GetSubGraph(), llvm::ARMBaseRegisterInfo::isAsmClobberable(), llvm::PPCRegisterInfo::isAsmClobberable(), llvm::MachineRegisterInfo::isReserved(), isStrictSubset(), isVariantApplicableInContextHelper(), llvm::BranchFolder::OptimizeFunction(), llvm::SIFrameLowering::processFunctionBeforeFrameFinalized(), removeGlobalCtors(), scavengeStackSlot(), llvm::AggressiveAntiDepBreaker::StartBlock(), llvm::CriticalAntiDepBreaker::StartBlock(), and llvm::PPCFrameLowering::updateCalleeSaves().
The documentation for this class was generated from the following file:
- include/llvm/ADT/BitVector.h