LLVM  4.0.0
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

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 adjustForTestUnderMask(), adjustSubwordCmp(), llvm::MachineFunction::allocateRegisterMask(), llvm::MipsAsmBackend::applyFixup(), llvm::lowertypetests::BitSetBuilder::build(), buildFromShuffleMostly(), llvm::LiveRangeCalc::calculate(), canEvaluateShiftedShift(), CanEvaluateShuffled(), canEvaluateTruncated(), llvm::BitVector::clearBitsInMask(), llvm::SmallBitVector::clearBitsInMask(), llvm::BitVector::clearBitsNotInMask(), llvm::SmallBitVector::clearBitsNotInMask(), collectShuffleElements(), combineBasicSADPattern(), combineConcatVectorOfExtracts(), combineLogicBlendIntoPBLENDV(), combineMaskedLoad(), combineMaskedStore(), combineShuffleOfConcatUndef(), combineTargetShuffle(), combineX86ShuffleChain(), combineX86ShufflesRecursively(), llvm::X86InstrInfo::commuteInstructionImpl(), llvm::TargetRegisterInfo::composeSubRegIndexLaneMask(), computeKnownBits(), llvm::AArch64TargetLowering::computeKnownBitsForTargetNode(), llvm::computeKnownBitsFromRangeMetadata(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), llvm::SelectionDAG::ComputeNumSignBits(), ConcatenateTwoVectors(), llvm::ConstantFoldCastOperand(), llvm::detail::TrailingZerosCounter< T, SizeOfT >::count(), llvm::IRBuilder< TargetFolder >::CreateAlignmentAssumption(), llvm::IRBuilderBase::CreateMaskedGather(), llvm::IRBuilderBase::CreateMaskedLoad(), llvm::MachineOperand::CreateRegLiveOut(), llvm::MachineOperand::CreateRegMask(), llvm::IRBuilder< TargetFolder >::CreateShuffleVector(), llvm::AArch64InstrInfo::decomposeMachineOperandsTargetFlags(), llvm::PPCInstrInfo::decomposeMachineOperandsTargetFlags(), llvm::SystemZRegisterInfo::eliminateFrameIndex(), llvm::X86AsmPrinter::EmitInstruction(), EmitMaskedTruncSStore(), llvm::UnwindOpcodeAssembler::EmitRegSave(), expandV4F32ToV2F64(), extractVector(), foldConstantInsEltIntoShuffle(), foldCttzCtlz(), llvm::InstCombiner::FoldOrOfICmps(), llvm::InstCombiner::FoldShiftByConstant(), foldShiftByConstOfShiftByConst(), foreachUnit(), getARClassRegisterMask(), getBits(), getFauxShuffleMask(), getInterleavedMask(), llvm::BasicTTIImplBase< AMDGPUTTIImpl >::getIntrinsicInstrCost(), llvm::ShuffleVectorSDNode::getMask(), llvm::SelectionDAG::getMaskedLoad(), llvm::SelectionDAG::getMaskedStore(), llvm::ShuffleVectorSDNode::getMaskElt(), getMClassRegisterMask(), getMOVL(), llvm::SCEVNAryExpr::getNoWrapFlags(), getPSHUFShuffleMask(), llvm::RegScavenger::getRegsAvailable(), getSequentialMask(), GetShiftedValue(), llvm::ShuffleVectorInst::getShuffleMask(), llvm::ShuffleVectorSDNode::getSplatIndex(), getStridedMask(), llvm::SIRegisterInfo::getSubRegClass(), getTargetConstantBitsFromNode(), getUnpackh(), getUnpackl(), getUsefulBitsFromBFM(), getUsefulBitsFromOrWithShiftedReg(), getX86MaskVec(), insert1BitVector(), insertInteger(), insertVector(), isAddSub(), isCDisp8(), llvm::ARMBaseRegisterInfo::isFrameOffsetLegal(), isKnownNonZero(), llvm::ShuffleVectorSDNode::isSplat(), llvm::ShuffleVectorInst::isValidOperands(), LowerAsSplatVectorLoad(), LowerBITREVERSE_XOP(), llvm::HexagonTargetLowering::LowerBUILD_VECTOR(), llvm::SystemZTargetLowering::LowerCall(), llvm::SparcTargetLowering::LowerCall_32(), llvm::SparcTargetLowering::LowerCall_64(), llvm::SparcTargetLowering::LowerF128Compare(), llvm::AMDGPUTargetLowering::LowerFROUND64(), llvm::SparcTargetLowering::LowerGlobalTLSAddress(), LowerINTRINSIC_WO_CHAIN(), LowerMGATHER(), LowerMLOAD(), LowerMSCATTER(), LowerMSTORE(), lowerV16I8VectorShuffle(), lowerV8I16GeneralSingleInputVectorShuffle(), llvm::HexagonTargetLowering::LowerVECTOR_SHUFFLE(), LowerVectorCTPOPBitmath(), lowerVectorSETCC(), lowerVectorShuffleAsBlend(), lowerVectorShuffleAsShift(), lowerVSELECTtoVectorShuffle(), MaskedValueIsZero(), llvm::SelectionDAG::MaskedValueIsZero(), llvm::SCEVWrapPredicate::maskFlags(), llvm::ScalarEvolution::maskFlags(), maskIsAllOneOrUndef(), maskIsAllZeroOrUndef(), matchPairwiseShuffleMask(), matchUnaryPermuteVectorShuffle(), matchVectorSplittingReduction(), llvm::BitVector::operator[](), llvm::AArch64InstrInfo::optimizeCondBranch(), parseBitField(), performANDCombine(), PerformANDCombine(), llvm::ARMTargetLowering::PerformCMOVToBFICombine(), performConcatVectorsCombine(), performORCombine(), performSelectCombine(), printBitField(), llvm::ARMInstPrinter::printMSRMaskOperand(), llvm::MIPrinter::printTargetFlags(), llvm::ARMInstPrinter::printThumbITMask(), llvm::AArch64_AM::processLogicalImmediate(), llvm::SimpleBitstreamCursor::Read(), llvm::AArch64TargetLowering::ReconstructShuffle(), llvm::Thumb2InstrInfo::ReplaceTailWithBranchTo(), llvm::BitVector::reset(), llvm::SmallBitVector::reset(), llvm::rewriteARMFrameIndex(), llvm::ThumbRegisterInfo::rewriteFrameIndex(), llvm::rewriteT2FrameIndex(), RunningWindows8OrGreater(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), llvm::BitVector::set(), llvm::SmallBitVector::set(), llvm::BitVector::setBitsInMask(), llvm::SmallBitVector::setBitsInMask(), llvm::BitVector::setBitsNotInMask(), llvm::SmallBitVector::setBitsNotInMask(), llvm::MachineInstr::setFlags(), llvm::Function::setIsMaterializable(), setTargetShuffleZeroElements(), llvm::MachineRegisterInfo::setUsedPhysRegMask(), llvm::TargetLowering::SimplifySetCC(), simplifyX86insertq(), simplifyX86MaskedLoad(), simplifyX86MaskedStore(), tryCombineCRC32(), trySequenceOfOnes(), updateImm(), upgradeMaskedCompare(), upgradeMaskedMove(), llvm::LiveInterval::verify(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitCallInst(), llvm::InstCombiner::visitInsertElementInst(), llvm::InstCombiner::visitSDiv(), llvm::InstCombiner::visitSRem(), and write32AArch64Addr().

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().

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.

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().

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.

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().

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.

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().

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().

Referenced by eliminateDeadStores(), findInitTrampolineFromAlloca(), operator&(), operator^(), operator|(), and operator~().