LLVM  8.0.0svn
Functions
llvm::BitmaskEnumDetail Namespace Reference

Functions

template<typename E >
std::underlying_type< E >::type Mask ()
 Get a bitmask with 1s in all places up to the high-order bit of E's largest value. More...
 
template<typename E >
std::underlying_type< E >::type Underlying (E Val)
 Check that Val is in range for E, and return Val cast to E's underlying type. More...
 
template<typename E , typename = typename std::enable_if<is_bitmask_enum<E>::value>::type>
E operator~ (E Val)
 
template<typename E , typename = typename std::enable_if<is_bitmask_enum<E>::value>::type>
E operator| (E LHS, E RHS)
 
template<typename E , typename = typename std::enable_if<is_bitmask_enum<E>::value>::type>
E operator & (E LHS, E RHS)
 
template<typename E , typename = typename std::enable_if<is_bitmask_enum<E>::value>::type>
E operator^ (E LHS, E RHS)
 
template<typename E , typename = typename std::enable_if<is_bitmask_enum<E>::value>::type>
Eoperator|= (E &LHS, E RHS)
 
template<typename E , typename = typename std::enable_if<is_bitmask_enum<E>::value>::type>
Eoperator &= (E &LHS, E RHS)
 
template<typename E , typename = typename std::enable_if<is_bitmask_enum<E>::value>::type>
Eoperator^= (E &LHS, E RHS)
 

Function Documentation

◆ Mask()

template<typename E >
std::underlying_type<E>::type llvm::BitmaskEnumDetail::Mask ( )

Get a bitmask with 1s in all places up to the high-order bit of E's largest value.

Definition at line 81 of file BitmaskEnum.h.

References llvm::NextPowerOf2().

Referenced by llvm::LiveRegUnits::addRegMasked(), addSegmentsWithValNo(), AddThumb1SBit(), adjustFixupValue(), adjustForRedundantAnd(), adjustForTestUnderMask(), adjustSubwordCmp(), llvm::MachineFunction::allocateRegMask(), llvm::analyzeArguments(), llvm::Nios2AsmBackend::applyFixup(), llvm::MipsAsmBackend::applyFixup(), ApplyX86MaskOn1BitsVec(), llvm::LivePhysRegs::available(), llvm::lowertypetests::BitSetBuilder::build(), buildFromShuffleMostly(), buildNew(), buildVector(), calculateByteProvider(), CallingConvSupported(), llvm::canConstantFoldCallTo(), canEvaluateShiftedShift(), CanEvaluateShuffled(), canEvaluateTruncated(), canonicalizeSaturatedSubtract(), CC_Lanai32_VarArg(), llvm::ARMTargetLowering::CCAssignFnForReturn(), changeFCMPPredToAArch64CC(), llvm::GlobalObject::classof(), llvm::APInt::clearBit(), llvm::SmallBitVector::clearBitsInMask(), llvm::BitVector::clearBitsInMask(), llvm::SmallBitVector::clearBitsNotInMask(), llvm::BitVector::clearBitsNotInMask(), CollectOpsToWiden(), collectShuffleElements(), combineADDToADDZE(), combineBasicSADPattern(), combineConcatVectorOfExtracts(), combineExtractWithShuffle(), combineHorizontalMinMaxResult(), combineInsertSubvector(), combineLogicBlendIntoPBLENDV(), combineMaskedLoad(), combineMaskedStore(), combineSelect(), combineShuffleOfConcatUndef(), combineShuffleToVectorExtend(), combineTargetShuffle(), combineTruncationShuffle(), combineX86ShuffleChain(), combineX86ShufflesRecursively(), commitFpm(), llvm::X86InstrInfo::commuteInstructionImpl(), llvm::TargetRegisterInfo::composeSubRegIndexLaneMask(), llvm::AArch64TargetLowering::computeKnownBitsForTargetNode(), llvm::ARMTargetLowering::computeKnownBitsForTargetNode(), llvm::X86TargetLowering::computeKnownBitsForTargetNode(), llvm::computeKnownBitsFromRangeMetadata(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), llvm::SelectionDAG::ComputeNumSignBits(), computeRecurrenceType(), concatenateTwoVectors(), llvm::ConstantFoldCastOperand(), llvm::MIRPrinter::convert(), llvm::PPCInstrInfo::convertToImmediateForm(), llvm::MachineInstr::copyIRFlags(), llvm::detail::TrailingZerosCounter< T, SizeOfT >::count(), createBSWAPShuffleMask(), llvm::LiveRangeCalc::createDeadDefs(), llvm::IRBuilderBase::CreateElementUnorderedAtomicMemMove(), llvm::IRBuilder< TargetFolder >::CreateExtractInteger(), llvm::createHexagonHardwareLoops(), llvm::createInterleaveMask(), createMaskedBitTest(), llvm::IRBuilderBase::CreateMaskedGather(), llvm::IRBuilderBase::CreateMaskedLoad(), llvm::createR600ExpandSpecialInstrsPass(), llvm::MachineOperand::CreateRegLiveOut(), llvm::MachineOperand::CreateRegMask(), llvm::IRBuilder< TargetFolder >::CreateShuffleVector(), DecodeMSRMask(), decomposeBitTestICmp(), llvm::AArch64InstrInfo::decomposeMachineOperandsTargetFlags(), llvm::ARMBaseInstrInfo::decomposeMachineOperandsTargetFlags(), llvm::PPCInstrInfo::decomposeMachineOperandsTargetFlags(), llvm::HexagonDAGToDAGISel::DetectUseSxtw(), llvm::DWARFContext::dump(), eliminateDeadStores(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::X86AsmPrinter::EmitInstruction(), llvm::XCoreTargetLowering::EmitInstrWithCustomInserter(), llvm::MipsTargetLowering::EmitInstrWithCustomInserter(), llvm::UnwindOpcodeAssembler::EmitRegSave(), llvm::X86RegisterInfo::enableMultipleCopyHints(), encodeBitmaskPerm(), llvm::RuntimeDyldCheckerExprEval::evaluate(), llvm::VPWidenMemoryInstructionRecipe::execute(), expandf64Toi32(), ExtractBitFromMaskVector(), extractVector(), llvm::SmallBitVector::find_next_unset(), foldAndOrOfEqualityCmpsWithConstants(), foldAnyOrAllBitsSet(), foldConstantInsEltIntoShuffle(), foldICmpShlOne(), foldICmpWithMinMax(), foldICmpWithTruncSignExtendedVal(), foldLogOpOfMaskedICmps(), foldMaskAndShiftToScale(), llvm::InstCombiner::FoldShiftByConstant(), foldShiftedShift(), foldSignedTruncationCheck(), foreachUnit(), fp16SrcZerosHighBits(), GeneratePerfectShuffle(), getAbsolute(), GetAEABIUnwindPersonalityName(), getARClassRegisterMask(), getAVX2GatherNode(), GetConstantInt(), llvm::SelectionDAG::getCopyFromReg(), llvm::SelectionDAG::GetDemandedBits(), getDemandedSrcElements(), getDwarfRegNum(), llvm::HexagonTargetLowering::GetDynamicTLSAddr(), getExpandedMinMaxOps(), getFauxShuffleMask(), GetFPLibCall(), llvm::DWARFUnitIndex::getFromHash(), llvm::ConstantExpr::getInBoundsGetElementPtr(), llvm::X86TargetLowering::getInlineAsmMemConstraint(), getIntrinsicForMaskedAtomicRMWBinOp32(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getIntrinsicInstrCost(), llvm::ARMTargetLowering::getJumpTableEncoding(), getMad64_32(), llvm::SuperRegClassIterator::getMask(), llvm::SelectionDAG::getMaskedLoad(), getMopState(), getMOVL(), getNextRegister(), llvm::SCEVNAryExpr::getNoWrapFlags(), llvm::MipsTargetLowering::getOpndList(), llvm::HvxSelector::getPairVT(), getParentPad(), getPermuteMask(), getPSHUFShuffleMask(), getRealVLDOpcode(), llvm::TargetLowering::getRecipEstimate(), getReductionSDNode(), llvm::RegScavenger::getRegsAvailable(), llvm::ShuffleVectorInst::getShuffleMask(), getTargetConstantBitsFromNode(), llvm::ARCTargetLowering::getTargetNodeName(), getTargetShuffleMask(), llvm::rdf::PhysicalRegisterInfo::getTRI(), getUniformBase(), getUnpackh(), getUnpackl(), getUsefulBitsFromBFM(), getUsefulBitsFromOrWithShiftedReg(), getVCmpInst(), llvm::SimplifyQuery::getWithInstruction(), getX86MaskVec(), group2Shuffle(), llvm::MCCodePadder::handleBasicBlockStart(), llvm::MCCodePadder::handleInstructionBegin(), hasOnlySelectUsers(), INITIALIZE_PASS(), insertDAGNode(), insertInteger(), insertVector(), instIsBreakpoint(), inversePermutation(), isBroadcastShuffle(), isBSwapHWordElement(), isCDisp8(), isCopy(), isCrossCopy(), llvm::HexagonTargetLowering::isCtlzFast(), isDefInSubRange(), llvm::ARMBaseRegisterInfo::isFrameOffsetLegal(), isFusableLoadOpStorePattern(), llvm::ShuffleVectorInst::isIdentityWithPadding(), llvm::isKnownNonEqual(), llvm::AArch64TargetLowering::isMaskAndCmp0FoldingBeneficial(), isMatchingOrAlias(), isMemOPCandidate(), isMulPowOf2(), isOpcWithIntImmediate(), isPermutation(), llvm::PPCInstrInfo::isProfitableToUnpredicate(), isSETCCorConvertedSETCC(), IsSingleInstrConstant(), isStackPtrRelative(), llvm::ShuffleVectorInst::isValidOperands(), LowerAsSplatVectorLoad(), llvm::HexagonTargetLowering::LowerBITCAST(), LowerBITREVERSE_XOP(), LowerBUILD_VECTORAsVariablePermute(), llvm::HexagonTargetLowering::LowerCall(), llvm::SITargetLowering::LowerCall(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::SparcTargetLowering::LowerF128Compare(), llvm::AMDGPUTargetLowering::LowerFROUND64(), llvm::SparcTargetLowering::LowerGlobalTLSAddress(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::lowerInterleavedStore(), llvm::X86TargetLowering::lowerInterleavedStore(), LowerMGATHER(), LowerMLOAD(), lowerMSABitClearImm(), LowerMSCATTER(), LowerMSTORE(), lowerV16I8VectorShuffle(), lowerV8I16GeneralSingleInputVectorShuffle(), llvm::HexagonTargetLowering::LowerVECTOR_SHUFFLE(), LowerVectorCTPOPBitmath(), LowerVectorINT_TO_FP(), lowerVectorShuffleAsShift(), lowerVectorShuffleByMerging128BitLanes(), lowerVSELECTtoVectorShuffle(), llvm::SCEVWrapPredicate::maskFlags(), llvm::ScalarEvolution::maskFlags(), maskIsAllOneOrUndef(), maskIsAllZeroOrUndef(), maskMatters(), llvm::DwarfExpression::maskSubRegister(), matchLogicBlend(), matchPair(), matchPairwiseShuffleMask(), matchVectorSplittingReduction(), mayTailCallThisCC(), llvm::ShuffleVectorInst::operator new(), llvm::BitVector::operator<<=(), llvm::BitVector::operator>>=(), llvm::BitVector::operator[](), llvm::AArch64InstrInfo::optimizeCondBranch(), optimizeLogicalImm(), performANDCombine(), PerformANDCombine(), performAtomicOp(), PerformBFICombine(), llvm::ARMTargetLowering::PerformCMOVToBFICombine(), performConcatVectorsCombine(), performORCombine(), PerformORCombineToBFI(), performSelectCombine(), PerformSHLSimplify(), PrepareCall(), llvm::LiveIntervals::print(), printBitField(), llvm::ARMInstPrinter::printMSRMaskOperand(), printSwizzleBitmask(), llvm::MachineOperand::printTargetFlags(), llvm::ARMInstPrinter::printThumbITMask(), llvm::AArch64_AM::processLogicalImmediate(), profitImm(), llvm::SimpleBitstreamCursor::Read(), llvm::AArch64TargetLowering::ReconstructShuffle(), recoverFramePointer(), replaceAllUsesOfWithIn(), llvm::R600TargetLowering::ReplaceNodeResults(), llvm::X86TargetLowering::ReplaceNodeResults(), replaceShuffleOfInsert(), llvm::Thumb2InstrInfo::ReplaceTailWithBranchTo(), llvm::StackMaps::reset(), llvm::SmallBitVector::reset(), llvm::BitVector::reset(), llvm::rewriteARMFrameIndex(), llvm::ThumbRegisterInfo::rewriteFrameIndex(), llvm::rewriteT2FrameIndex(), RunningWindows8OrGreater(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), selectI64Imm(), llvm::HvxSelector::selectShuffle(), llvm::HexagonDAGToDAGISel::SelectVAlignAddr(), llvm::SmallBitVector::set(), llvm::BitVector::set(), llvm::APInt::setBit(), llvm::SmallBitVector::setBitsInMask(), llvm::BitVector::setBitsInMask(), llvm::SmallBitVector::setBitsNotInMask(), llvm::BitVector::setBitsNotInMask(), llvm::MachineInstr::setFlags(), llvm::Function::setIsMaterializable(), llvm::DwarfExpression::setSubRegisterPiece(), setTargetShuffleZeroElements(), llvm::RISCVTargetLowering::shouldInsertFencesForAtomic(), shouldMergeGEPs(), ShrinkLoadReplaceStoreWithStore(), SimplifyAndInst(), llvm::TargetLowering::SimplifyDemandedBits(), simplifyDivRem(), simplifySelectWithFakeICmpEq(), llvm::TargetLowering::SimplifySetCC(), simplifyX86MaskedLoad(), simplifyX86MaskedStore(), simplifyX86round(), stripModuloOnShift(), stripRegisterPrefix(), llvm::ARMTargetLowering::targetShrinkDemandedConstant(), toString(), tryCombineCRC32(), llvm::LegalizationArtifactCombiner::tryCombineZExt(), tryFormConcatFromShuffle(), trySequenceOfOnes(), llvm::VPRecipeBuilder::tryToWidenMemory(), TypeSizeToSizeIndex(), unpackF64OnRV32DSoftABI(), llvm::MachineInstr::untieRegOperand(), updateImm(), llvm::UpgradeIntrinsicCall(), upgradeMaskedCompare(), upgradeMaskedMove(), UpgradeMaskToInt(), upgradePMULDQ(), UpgradeX86AddSubSatIntrinsics(), llvm::InnerLoopVectorizer::vectorizeMemoryInstruction(), llvm::LiveInterval::verify(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitCallInst(), llvm::InstCombiner::visitInsertElementInst(), llvm::InstCombiner::visitInstruction(), llvm::InstCombiner::visitLShr(), llvm::InstCombiner::visitSDiv(), llvm::InstCombiner::visitShl(), llvm::InstCombiner::visitSRem(), llvm::LegalizerHelper::widenScalar(), and write32AArch64Addr().

◆ operator &()

template<typename E , typename = typename std::enable_if<is_bitmask_enum<E>::value>::type>
E llvm::BitmaskEnumDetail::operator& ( E  LHS,
E  RHS 
)

Definition at line 112 of file BitmaskEnum.h.

References E, and Underlying().

◆ operator &=()

template<typename E , typename = typename std::enable_if<is_bitmask_enum<E>::value>::type>
E& llvm::BitmaskEnumDetail::operator&= ( E LHS,
E  RHS 
)

Definition at line 134 of file BitmaskEnum.h.

References E.

◆ operator^()

template<typename E , typename = typename std::enable_if<is_bitmask_enum<E>::value>::type>
E llvm::BitmaskEnumDetail::operator^ ( E  LHS,
E  RHS 
)

Definition at line 118 of file BitmaskEnum.h.

References E, and Underlying().

◆ operator^=()

template<typename E , typename = typename std::enable_if<is_bitmask_enum<E>::value>::type>
E& llvm::BitmaskEnumDetail::operator^= ( E LHS,
E  RHS 
)

Definition at line 141 of file BitmaskEnum.h.

References llvm::LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE().

◆ operator|()

template<typename E , typename = typename std::enable_if<is_bitmask_enum<E>::value>::type>
E llvm::BitmaskEnumDetail::operator| ( E  LHS,
E  RHS 
)

Definition at line 106 of file BitmaskEnum.h.

References E, and Underlying().

◆ operator|=()

template<typename E , typename = typename std::enable_if<is_bitmask_enum<E>::value>::type>
E& llvm::BitmaskEnumDetail::operator|= ( E LHS,
E  RHS 
)

Definition at line 127 of file BitmaskEnum.h.

References E.

◆ operator~()

template<typename E , typename = typename std::enable_if<is_bitmask_enum<E>::value>::type>
E llvm::BitmaskEnumDetail::operator~ ( E  Val)

Definition at line 100 of file BitmaskEnum.h.

References E, and Underlying().

◆ Underlying()

template<typename E >
std::underlying_type<E>::type llvm::BitmaskEnumDetail::Underlying ( E  Val)

Check that Val is in range for E, and return Val cast to E's underlying type.

Definition at line 91 of file BitmaskEnum.h.

References assert(), and E.

Referenced by eliminateDeadStores(), findInitTrampolineFromAlloca(), llvm::pdb::NativeTypeEnum::getBuiltinType(), operator &(), operator^(), operator|(), and operator~().