LLVM  6.0.0svn
Namespaces | Macros | Functions | Variables
NVVMIntrRange.cpp File Reference
#include "NVPTX.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/InstIterator.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Intrinsics.h"
Include dependency graph for NVVMIntrRange.cpp:

Go to the source code of this file.

Namespaces

 llvm
 Compute iterated dominance frontiers using a linear time algorithm.
 

Macros

#define DEBUG_TYPE   "nvvm-intr-range"
 

Functions

void llvm::initializeNVVMIntrRangePass (PassRegistry &)
 
 INITIALIZE_PASS (NVVMIntrRange, "nvvm-intr-range", "Add !range metadata to NVVM intrinsics.", false, false) static bool addRangeMetadata(uint64_t Low
 
C setMetadata (LLVMContext::MD_range, MDNode::get(Context, LowAndHigh))
 

Variables

static cl::opt< unsignedNVVMIntrRangeSM ("nvvm-intr-range-sm", cl::init(20), cl::Hidden, cl::desc("SM variant"))
 
uint64_t High
 
uint64_t CallInstC
 
LLVMContextContext = C->getParent()->getContext()
 
IntegerTypeInt32Ty = Type::getInt32Ty(Context)
 
MetadataLowAndHigh []
 
return true
 

Macro Definition Documentation

◆ DEBUG_TYPE

#define DEBUG_TYPE   "nvvm-intr-range"

Definition at line 23 of file NVVMIntrRange.cpp.

Function Documentation

◆ INITIALIZE_PASS()

INITIALIZE_PASS ( NVVMIntrRange  ,
"nvvm-intr-range"  ,
"Add !range metadata to NVVM intrinsics."  ,
false  ,
false   
)

◆ setMetadata()

C setMetadata ( LLVMContext::MD_range  ,
MDNode::get(Context, LowAndHigh  
)

Variable Documentation

◆ C

uint64_t CallInst* C
Initial value:
{
if (C->getMetadata(LLVMContext::MD_range))
return false
uint64_t CallInst * C
MDNode * getMetadata(unsigned KindID) const
Get the metadata of given kind attached to this Instruction.
Definition: Instruction.h:194

Definition at line 67 of file NVVMIntrRange.cpp.

Referenced by llvm::AArch64beTargetMachine::AArch64beTargetMachine(), llvm::GVN::ValueTable::add(), false::Chain::add(), llvm::AliasSetTracker::add(), llvm::AttributeSet::addAttributes(), llvm::DomTreeNodeBase< BasicBlock >::addChild(), llvm::SchedDFSImpl::addConnection(), addEdge(), llvm::ConstantPool::addEntry(), llvm::InnerLoopVectorizer::addMetadata(), AddNodeIDCustom(), AddReachableCodeToWorklist(), llvm::lto::Config::addSaveTemps(), llvm::DIEHash::addSLEB128(), addStackMapLiveVars(), alwaysAvailable(), analyzeGlobalAux(), analyzeLoopUnrollCost(), llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >, ChannelT, FunctionIdT, SequenceNumberT >::appendCallAsync(), appendToUsedList(), llvm::PBQPRAConstraintList::apply(), llvm::PBQP::applyR1(), llvm::PBQP::applyR2(), ApplyX86MaskOn1BitsVec(), areCFlagsAliveInSuccessors(), areStridedAccessesIndependent(), llvm::ARMBETargetMachine::ARMBETargetMachine(), asmClobbersCTR(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), BitCastConstantVector(), llvm::yaml::ScalarBitSetTraits< COFF::DLLCharacteristics >::bitset(), BrPHIToSelect(), BuildConstantFromSCEV(), buildFrameType(), llvm::PassBuilder::buildFunctionSimplificationPipeline(), llvm::MachineIRBuilder::buildInstr(), llvm::PassBuilder::buildModuleOptimizationPipeline(), llvm::PassBuilder::buildModuleSimplificationPipeline(), buildMultiplyTree(), buildNew(), calculateByteProvider(), llvm::object_creator< C >::call(), llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >, ChannelT, FunctionIdT, SequenceNumberT >::callAsync(), llvm::orc::rpc::MultiThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >::callNB(), callsiteIsHot(), canFoldIVIncExpr(), canIfConvertPHINodes(), canonicalizeMetadataForValue(), canRenameComdat(), canSinkInstructions(), llvm::TailDuplicator::canTailDuplicate(), canTrapImpl(), castRequiresQueuePtr(), CC_MipsO32_FP64(), cheapToScalarize(), CheckAndImm(), checkBoolTestSetCCCombine(), checkForNegativeOperand(), CheckInteger(), checkMachOComdat(), CheckOrImm(), checkWasmComdat(), llvm::object::Archive::child_begin(), llvm::BitTracker::RegisterCell::cl(), llvm::WasmYAML::NameSection::classof(), llvm::WasmYAML::LinkingSection::classof(), llvm::Function::classof(), CleanupConstantGlobalUsers(), CleanupPointerRootUsers(), llvm::TypeFinder::clear(), llvm::RegionBase< RegionTraits< Function > >::clearNodeCache(), llvm::CloneModule(), llvm::VNCoercion::coerceAvailableValueToLoadTypeHelper(), CollectAddOperandsWithScales(), collectCallers(), llvm::collectCmpOps(), collectComdatMembers(), collectInsertionElements(), CollectSubexprs(), llvm::LoopVectorizationPlanner::collectTriviallyDeadInstructions(), combineFAndFNotToFAndn(), combineFMA(), combineMinNumMaxNum(), combineMul(), combineShuffleOfSplat(), combineSub(), llvm::InstCombiner::commonShiftTransforms(), CompactSwizzlableVector(), computeBytesPoppedByCalleeForSRet(), llvm::ARM::computeDefaultTargetABI(), computeKnownBits(), llvm::SelectionDAG::computeKnownBits(), computeKnownBitsFromAssume(), llvm::SelectionDAG::ComputeNumSignBits(), llvm::RegisterClassInfo::computePSetLimit(), computeUnsignedMinMaxValuesFromKnownBits(), llvm::JumpThreadingPass::ComputeValueKnownInPredecessors(), computeWeight(), llvm::ConstantExpr::ConstantExpr(), llvm::ConstantFoldBinaryOpOperands(), llvm::ConstantFoldCastInstruction(), llvm::ConstantFoldExtractValueInstruction(), llvm::ConstantFoldInsertElementInstruction(), llvm::ConstantFoldInsertValueInstruction(), llvm::ConstantFoldInstruction(), llvm::ConstantFoldLoadFromConstPtr(), llvm::ConstantFoldLoadThroughGEPConstantExpr(), llvm::ConstantFoldLoadThroughGEPIndices(), constantFoldUser(), llvm::sys::UnicodeCharSet::contains(), contains(), countOperands(), llvm::object::Archive::create(), llvm::sampleprof::SampleProfileReader::create(), createAndInstr(), createCast(), llvm::createConstantPropagationPass(), createDevirtTriggerFunc(), createGlobalFwdRef(), llvm::createObjCARCOptPass(), createOrdering(), llvm::R600TargetMachine::createPassConfig(), llvm::createPGOFuncNameMetadata(), llvm::createPGOIndirectCallPromotionLegacyPass(), createPrivateNonConstGlobalForString(), llvm::createR600ISelDag(), createResumeEntryBlock(), llvm::createSeparateConstOffsetFromGEPPass(), llvm::createShadowStackGCLoweringPass(), llvm::createStraightLineStrengthReducePass(), llvm::BitTracker::RegisterCell::ct(), llvm::VerifierSupport::DebugInfoCheckFailed(), llvm::decomposeBitTestICmp(), decomposeSimpleLinearExpr(), deleteIfDead(), DeleteTriviallyDeadInstructions(), llvm::orc::rpc::SerializationTraits< ChannelT, Error >::deserialize(), llvm::orc::rpc::SerializationTraits< ChannelT, std::tuple< ArgTs... > >::deserialize(), llvm::orc::rpc::detail::HandlerTraits< RetT(ArgTs...)>::deserializeArgs(), detectAVGPattern(), detectUSatPattern(), llvm::HexagonDAGToDAGISel::DetectUseSxtw(), llvm::DiagnosticPrinterRawOStream::DiagnosticPrinterRawOStream(), llvm::dwarf::djbHash(), DominatesMergePoint(), llvm::LLVMContextImpl::dropTriviallyDeadConstantArrays(), llvm::GVNExpression::Expression::dump(), llvm::AttributeListImpl::dump(), llvm::BitTracker::MachineEvaluator::eCLB(), llvm::BitTracker::MachineEvaluator::eCTB(), llvm::StringToOffsetTable::EmitCharArray(), EmitCMP(), llvm::AsmPrinter::EmitConstantPool(), llvm::AsmPrinter::emitDwarfAbbrevs(), llvm::X86AsmPrinter::EmitInstruction(), llvm::AMDGPUAsmPrinter::EmitInstruction(), EmitKTEST(), llvm::ARMBaseRegisterInfo::emitLoadConstPool(), llvm::TargetLoweringObjectFileELF::emitModuleMetadata(), llvm::TargetLoweringObjectFile::emitModuleMetadata(), llvm::TargetLoweringObjectFileCOFF::emitModuleMetadata(), emitPostSt(), llvm::InnerLoopVectorizer::emitSCEVChecks(), emitSignedInt64(), emitThumb1LoadConstPool(), emitThumb2LoadConstPool(), emitX86MaskSelect(), EmitX86Select(), ensurePromotedGV(), llvm::Evaluator::EvaluateBlock(), EvaluateExpression(), llvm::ExecutionEngine::ExecutionEngine(), expand(), ExpandBinOp(), llvm::SystemZInstrInfo::expandPostRAPseudo(), expandV4F32ToV2F64(), ExtractConstantBytes(), ExtractImmediate(), FactorOutConstant(), llvm::filterDeadComdatFunctions(), llvm::StringRef::find(), findBaseOffset(), llvm::SwitchInst::findCaseValue(), llvm::FindInsertedValue(), findInsertPointAfter(), findPartitions(), findRetainForStoreStrongContraction(), llvm::findScalarElement(), fixupFPReturnAndCall(), llvm::symbolize::LLVMSymbolizer::flush(), foldAndOrOfEqualityCmpsWithConstants(), foldBitCastBitwiseLogic(), foldCttzCtlz(), foldICmpShlOne(), foldICmpWithMinMax(), foldLogicCastConstant(), foldLogOpOfMaskedICmps(), llvm::X86InstrInfo::foldMemoryOperandImpl(), foldOperationIntoPhiValue(), foldSelectICmpAndOr(), llvm::InstCombiner::FoldShiftByConstant(), foldUDivPow2Cst(), foldVecTruncToExtElt(), llvm::ImutAVLTree< ImutInfo >::foreach(), llvm::ImmutableSet< ValT, ValInfo >::foreach(), forEachUser(), FunctionNumber(), generateEquivalentSub(), llvm::ValueLatticeElement::get(), llvm::objcarc::ARCRuntimeEntryPoints::get(), llvm::ConstantInt::get(), llvm::AttributeSetNode::get(), llvm::TypeBuilder< types::i< num_bits >, cross >::get(), llvm::TypeBuilder< float, false >::get(), llvm::TypeBuilder< double, false >::get(), llvm::TypeBuilder< types::ieee_float, cross >::get(), llvm::TypeBuilder< types::ieee_double, cross >::get(), llvm::TypeBuilder< types::x86_fp80, cross >::get(), llvm::TypeBuilder< types::fp128, cross >::get(), llvm::TypeBuilder< types::ppc_fp128, cross >::get(), llvm::TypeBuilder< types::x86_mmx, cross >::get(), llvm::TypeBuilder< void, cross >::get(), llvm::ConstantFP::get(), llvm::AttributeList::get(), llvm::ValueAsMetadata::get(), llvm::ConstantAsMetadata::get(), llvm::ConstantArray::get(), llvm::ConstantVector::get(), getAArch64Cmp(), getAbsolute(), llvm::ScalarEvolution::getAddExpr(), llvm::rdf::PhysicalRegisterInfo::getAliasSet(), llvm::TargetRegisterInfo::getAllocatableSet(), llvm::IRTranslator::getAnalysisUsage(), getARClassRegisterMask(), llvm::SystemZTTIImpl::getArithmeticInstrCost(), getArrayElements(), getAVX2GatherNode(), getBinOpsForFactorization(), GetCaseResults(), llvm::BitTracker::MachineEvaluator::getCell(), getCmp(), llvm::PBQP::Matrix::getColAsVector(), getComdatGVForCOFF(), llvm::ValueEnumerator::getComdats(), llvm::irsymtab::Reader::getComdatTable(), getComparePred(), llvm::ValueAsMetadata::getConstant(), getConstantAt(), getConstantFromPool(), llvm::BitcodeReaderValueList::getConstantFwdRef(), GetConstantInt(), getConstantPart(), llvm::SelectionDAG::getConstantPool(), llvm::MachineConstantPool::getConstantPoolAlignment(), getConstantValue(), llvm::ExecutionEngine::getConstantValue(), llvm::BasicBlock::getContext(), getContiguousRangeOfSetBits(), llvm::X86AsmPrinter::GetCPISymbol(), getDefaultPersonalityFn(), llvm::DomTreeNodeBase< BasicBlock >::getDFSNumOut(), llvm::DWARFUnit::getDWOId(), getEdgeValueLocal(), getELFComdat(), getEncodedUnnamedAddr(), getEstimate(), getExactSDiv(), llvm::TargetLoweringObjectFileELF::getExplicitSectionGlobal(), getFirstNonAllocaInTheEntryBlock(), getFoldedAlignOf(), getFoldedOffsetOf(), getFoldedSizeOf(), llvm::MemoryLocation::getForDest(), llvm::MemoryLocation::getForSource(), llvm::ConstantExpr::getFPCast(), GetFPLibCall(), getFPTernOp(), llvm::DependenceInfo::getFunction(), llvm::AMDGPUMangledLibFunc::getFunctionType(), getGatherNode(), llvm::ExecutionEngine::getGlobalValueAtAddress(), getImplicitScaleFactor(), getIncrmentFactorSCEV(), llvm::ConstantFP::getInfinity(), llvm::Constant::getIntegerValue(), getIntrinsicCmp(), llvm::TargetLoweringObjectFile::getKindForGlobal(), llvm::InvokeInst::getLandingPadInst(), getLit64Encoding(), GetLoopInvariantInsertPosition(), getMad64_32(), llvm::FunctionAnalysisManagerCGSCCProxy::Result::getManager(), getMaskedICmpType(), llvm::ShuffleVectorInst::getMaskValue(), getMDNodeOperandImpl(), llvm::object::Archive::Symbol::getMember(), getMemcpyLoadsAndStores(), getMemmoveLoadsAndStores(), getMemSetPatternValue(), getMemsetValue(), getMetadataTypeOrder(), getMinFromExprs(), getMinVisibility(), llvm::GlobalsAAResult::getModRefBehavior(), llvm::ConstantFP::getNaN(), llvm::ConstantFP::getNegativeZero(), llvm::SelectionDAG::getNode(), llvm::ConstantExpr::getNot(), llvm::AArch64CC::getNZCVToSatisfyCondCode(), llvm::AMDGPULibFunc::getOrInsertFunction(), llvm::LazyCallGraph::SCC::getOuterRefSCC(), llvm::PPCTargetLowering::getPICJumpTableRelocBaseExpr(), llvm::Type::getPointerElementType(), getPowerOf2Factor(), getPredicateResult(), getPrefetchNode(), GetPromotionOpcode(), llvm::getPtrStride(), GetRangeFromMetadata(), llvm::objcarc::getreturnRVOperand(), llvm::PBQP::Matrix::getRowAsVector(), getScatterNode(), llvm::ScalarEvolution::getSCEVAtScope(), llvm::TargetLoweringObjectFileELF::getSectionForJumpTable(), llvm::TargetLoweringObjectFileCOFF::getSectionForJumpTable(), llvm::ConstantExpr::getSelect(), getSelectionForCOFF(), getShiftedValue(), getSignature(), llvm::SparcTargetLowering::getSingleConstraintMatchWeight(), llvm::AVRTargetLowering::getSingleConstraintMatchWeight(), llvm::SystemZTargetLowering::getSingleConstraintMatchWeight(), llvm::X86TargetLowering::getSingleConstraintMatchWeight(), getSplatConstantFP(), llvm::getSplatValue(), llvm::getStrideFromPointer(), getStringEncoding(), llvm::GCNTargetMachine::getSubtargetImpl(), llvm::sys::getSwappedBytes(), llvm::MachObjectWriter::getSymbolAddress(), llvm::X86TargetMachine::getTargetIRAnalysis(), llvm::SelectionDAG::getTargetJumpTable(), llvm::InstCombiner::getTargetLibraryInfo(), getTargetShuffleMask(), getTargetVShiftByConstNode(), getTestBitOperand(), getTOCEntry(), llvm::slpvectorizer::BoUpSLP::getTreeCost(), llvm::DataLayout::getTypeAllocSizeInBits(), llvm::TargetLoweringBase::getTypeLegalizationCost(), getTypePartition(), getUnconditionalBrDisp(), getUnderlyingObjects(), getUniformBase(), llvm::Constant::getUniqueInteger(), llvm::SelectionDAGBuilder::getValueImpl(), getVCmpInst(), getVectorCompareInfo(), llvm::SelectionDAG::getVectorShuffle(), llvm::PerFunctionMIParsingState::getVRegInfo(), llvm::MachinePointerInfo::getWithOffset(), getX86SSEConditionCode(), handleMemIntrinsicPtrUse(), handleNonPrevailingComdat(), llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >, ChannelT, FunctionIdT, SequenceNumberT >::handleOne(), llvm::Constant::handleOperandChange(), llvm::ValueAsMetadata::handleRAUW(), llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >, ChannelT, FunctionIdT, SequenceNumberT >::handleResponse(), llvm::GEPOperator::hasAllZeroIndices(), llvm::object::hashSysV(), hasOnlyOneNonZeroIndex(), hasOnlySelectUsers(), hasOutsideLoopUser(), hasStoreUsersOnly(), hasUnaryFloatFn(), hasZeroSignBit(), hoistAndMergeSGPRInits(), llvm::hoistRegion(), llvm::NVPTXAsmPrinter::ignoreLoc(), incorporateNewSCCRange(), llvm::CompositeType::indexValid(), llvm::XCoreMCInstLower::Initialize(), llvm::MipsMCInstLower::Initialize(), INITIALIZE_PASS(), llvm::MCRegisterInfo::InitMCRegisterInfo(), llvm::InlinerPass::InlinerPass(), llvm::IRBuilder< TargetFolder >::Insert(), insertCall(), llvm::HexagonFrameLowering::insertCFIInstructions(), insertDebugValues(), llvm::LazyCallGraph::RefSCC::insertIncomingRefEdge(), insertSinCosCall(), instrumentMaskedLoadOrStore(), instrumentMemAccess(), instrumentOneFunc(), llvm::intCCToAVRCC(), llvm::ProfileSummaryInfo::invalidate(), isAlwaysFoldable(), llvm::LazyCallGraph::SCC::isAncestorOf(), llvm::LazyCallGraph::RefSCC::isAncestorOf(), isBLACompatibleAddress(), isBSwapHWordElement(), llvm::isBytewiseValue(), isCanonicalized(), llvm::ProfileSummaryInfo::isColdCallSite(), isConstantFPZero(), llvm::IsConstantOffsetFromGlobal(), isConstOrDemandedConstSplat(), isDebug(), isDispSafeForFrameIndex(), isDivZero(), llvm::ImmutableMap< KeyT, ValT, ValInfo >::isEmpty(), isEmptyFunction(), llvm::DenseMapInfo< VTableSlot >::isEqual(), isExtendedBUILD_VECTOR(), isFiniteNonZeroFp(), isFloatingPointZero(), isFNEG(), isFunctionMallocLike(), isFusableLoadOpStorePattern(), isHorizontalBinOp(), llvm::ProfileSummaryInfo::isHotCallSite(), isICmpTrue(), isImplicitOperandIn(), isInPartition(), isIntImmediate(), llvm::SelectionDAG::isKnownNeverNaN(), llvm::SelectionDAG::isKnownNeverZero(), isKnownNonNaN(), isKnownNonZero(), isKnownToBeAPowerOfTwo(), llvm::SelectionDAG::isKnownToBeAPowerOfTwo(), isKnownTypeIdMember(), isLoadConditional(), llvm::ScalarEvolution::isLoopEntryGuardedByCond(), llvm::ScalarEvolution::isLoopInvariantPredicate(), isLoopPassName(), isMemOPCandidate(), isMulPowOf2(), isNegativeOne(), isNormalFp(), llvm::isOnlyUsedInZeroEqualityComparison(), isOptimizingForSize(), llvm::LazyCallGraph::RefSCC::isParentOf(), isPerfectIncrement(), isRepeatedByteSequence(), isSafeAndProfitableToSinkLoad(), isSafeSROAElementUse(), isSafeToPromoteArgument(), llvm::isSafeToSpeculativelyExecute(), isScaledConstantInRange(), isSelect01(), isSExtLoad(), isSimpleEnoughValueToCommitHelper(), llvm::FullDependence::isSplitable(), isStackPtrRelative(), isStrideMul(), isSuitableForBSS(), isTruePredicate(), isTruncateOf(), isUndefShift(), llvm::MCAsmInfo::isValidUnquotedName(), isValidVisibilityForLinkage(), isWeak(), isZero(), jumpToValueSymbolTable(), lexFloatingPointLiteral(), lexName(), lexStringConstant(), lexVirtualRegister(), llvm::LLParser::LLParser(), LLVMGetAsString(), LLVMGetInstructionOpcode(), LLVMInitializeNativeDisassembler(), LLVMInitializePowerPCAsmParser(), LLVMInitializePowerPCTarget(), LLVMInitializePowerPCTargetMC(), LLVMInitializeSparcAsmParser(), LLVMInstructionClone(), LLVMIsConstantString(), LLVMIsNull(), LLVMValueAsMetadata(), loadELF64(), llvm::XCoreInstrInfo::loadImmediate(), lookThroughCast(), LookupConstant(), llvm::LazyCallGraph::lookupRefSCC(), llvm::AMDGPUMCInstLower::lower(), llvm::SparcTargetLowering::LowerAsmOperandForConstraint(), llvm::LanaiTargetLowering::LowerAsmOperandForConstraint(), llvm::AVRTargetLowering::LowerAsmOperandForConstraint(), llvm::ARMTargetLowering::LowerAsmOperandForConstraint(), llvm::SystemZTargetLowering::LowerAsmOperandForConstraint(), llvm::X86TargetLowering::LowerAsmOperandForConstraint(), llvm::TargetLowering::LowerAsmOperandForConstraint(), lowerAtomicArithWithLOCK(), llvm::HexagonTargetLowering::LowerBUILD_VECTOR(), LowerBUILD_VECTORAsVariablePermute(), lowerBuildVectorAsBroadcast(), llvm::TargetLowering::lowerCmpEqZeroToCtlzSrl(), llvm::HexagonTargetLowering::LowerCONCAT_VECTORS(), llvm::AsmPrinter::lowerConstant(), llvm::LanaiTargetLowering::LowerConstantPool(), lowerIncomingStatepointValue(), llvm::HexagonTargetLowering::LowerINSERT_VECTOR(), llvm::AMDGPUTargetLowering::LowerINT_TO_FP32(), llvm::LanaiTargetLowering::LowerMUL(), LowerScalarImmediateShift(), LowerScalarVariableShift(), llvm::HexagonTargetLowering::LowerSETCC(), LowerShift(), LowerWRITE_REGISTER(), llvm::PatternMatch::m_Br(), llvm::PatternMatch::m_Constant(), llvm::PatternMatch::m_ConstantFP(), llvm::PatternMatch::m_Select(), llvm::ConstantRange::makeGuaranteedNoWrapRegion(), MapDWLangToCVLang(), llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::MarkBlockExecutable(), llvm::BaseIndexOffset::match(), llvm::PatternMatch::match_zero::match(), llvm::PatternMatch::match_neg_zero::match(), llvm::PatternMatch::match_any_zero::match(), llvm::PatternMatch::match_nan::match(), llvm::PatternMatch::match_one::match(), llvm::PatternMatch::match_all_ones::match(), llvm::PatternMatch::match_sign_mask::match(), llvm::PatternMatch::apint_match::match(), llvm::PatternMatch::apfloat_match::match(), llvm::PatternMatch::cst_pred_ty< Predicate >::match(), llvm::PatternMatch::api_pred_ty< Predicate >::match(), llvm::PatternMatch::specific_fpval::match(), llvm::PatternMatch::specific_intval::match(), llvm::PatternMatch::fneg_match< LHS_t >::match(), MatchingStackOffset(), llvm::matchSelectPattern(), llvm::orc::RemoteObjectLayer< RPCEndpoint >::RemoteSymbolMaterializer::materialize(), llvm::gvn::AvailableValueInBlock::MaterializeAdjustedValue(), maybeLexEscapedIRValue(), maybeLexExlaim(), maybeLexGlobalValue(), maybeLexHexadecimalLiteral(), maybeLexIdentifier(), maybeLexIndex(), maybeLexIndexAndName(), maybeLexIntegerOrScalarType(), maybeLexMachineBasicBlock(), maybeLexNewline(), maybeLexNumericalLiteral(), maybeLexRegister(), maybeLexSymbol(), maybePrintComdat(), mayCombineMisaligned(), mayTailCallThisCC(), llvm::MDBuilder::MDBuilder(), llvm::MemoryDependenceResults::MemoryDependenceResults(), mergeTypeForSet(), llvm::MipsMCCodeEmitter::MipsMCCodeEmitter(), moveUp(), multikeySort(), llvm::detail::DoubleAPFloat::multiply(), narrowUDivURem(), NegateValue(), llvm::EscapeEnumerator::Next(), node_eq(), llvm::object::ExportEntry::nodeOffset(), operandWithNewAddressSpaceOrCreateUndef(), llvm::AttributeSetNode::operator delete(), llvm::BitTracker::RegisterCell::operator!=(), llvm::EVT::compareRawBits::operator()(), llvm::ManagedStatic< C, Creator, Deleter >::operator*(), llvm::object::Archive::child_iterator::operator*(), llvm::object::Archive::child_iterator::operator->(), llvm::pdb::operator<<(), llvm::DiagnosticPrinterRawOStream::operator<<(), llvm::raw_ostream::operator<<(), llvm::operator<<(), llvm::detail::DoubleAPFloat::operator=(), OptimizeAwayTrappingUsesOfValue(), optimizeGlobalsInModule(), OptimizeGlobalVars(), llvm::opt::OptTable::OptTable(), orderValue(), llvm::parseConstantValue(), llvm::ARM::parseCPUArch(), llvm::PassBuilder::parsePassPipeline(), parsePhysicalReg(), llvm::LLParser::parseTypeAtBeginning(), parseVersion(), passingValueIsAlwaysUndefined(), peekThroughBitcast(), PeepholePPC64ZExtGather(), PerformAddcSubcCombine(), PerformAddeSubeCombine(), llvm::R600TargetLowering::PerformDAGCombine(), llvm::AMDGPUTargetLowering::PerformDAGCombine(), llvm::PPCTargetLowering::PerformDAGCombine(), performFDivCombine(), performFpToIntCombine(), performMaskedAtomicOp(), performMULCombine(), performMulCombine(), PerformMULCombine(), PerformShiftCombine(), performSRLCombine(), PerformVCVTCombine(), PerformVDIVCombine(), PickMostRelevantLoop(), predictValueUseListOrder(), preheader(), llvm::ARMConstantPoolValue::print(), llvm::ValueEnumerator::print(), llvm::MCSymbol::print(), llvm::PrintEscapedString(), llvm::printLLVMNameWithoutPrefix(), printMetadataIdentifier(), PrintQuotedString(), processCmp(), processMemAccess(), processPHI(), processSelect(), processUGT_ADDCST_ADD(), llvm::promoteIndirectCall(), PropagateConstantsIntoArguments(), propagateMetadata(), r3(), llvm::GVNHoist::rank(), llvm::coverage::RawCoverageMappingReader::RawCoverageMappingReader(), llvm::coverage::RawCoverageFilenamesReader::read(), readWideAPInt(), llvm::BinaryStreamReader::readWideString(), ReduceSwitchRange(), RedzoneSizeForScale(), llvm::PassBuilder::registerAnalysisRegistrationCallback(), llvm::PassBuilder::registerCGSCCAnalyses(), llvm::PassBuilder::registerCGSCCOptimizerLateEPCallback(), llvm::orc::rpc::SerializationTraits< ChannelT, Error >::registerErrorType(), llvm::PassBuilder::registerFunctionAnalyses(), llvm::PassBuilder::registerLateLoopOptimizationsEPCallback(), llvm::PassBuilder::registerLoopAnalyses(), llvm::PassBuilder::registerLoopOptimizerEndEPCallback(), llvm::PassBuilder::registerModuleAnalyses(), llvm::PassBuilder::registerParseAACallback(), llvm::PassBuilder::registerParseTopLevelPipelineCallback(), llvm::PassBuilder::registerPeepholeEPCallback(), llvm::PassBuilder::registerPipelineParsingCallback(), llvm::PassBuilder::registerScalarOptimizerLateEPCallback(), llvm::orc::rpc::registerStringError(), llvm::PassBuilder::registerVectorizerStartEPCallback(), llvm::PostGenericScheduler::releaseBottomNode(), remapInstruction(), llvm::sys::path::remove_dots(), llvm::AttributeSet::removeAttributes(), llvm::LazyCallGraph::removeDeadFunction(), removeDeadUsersOfConstant(), RemoveInstInputs(), llvm::LazyCallGraph::RefSCC::removeInternalRefEdge(), replaceAllUsesOfWithIn(), llvm::X86InstrInfo::replaceBranchWithTailCall(), llvm::AVRTargetLowering::ReplaceNodeResults(), llvm::ARMTargetLowering::ReplaceNodeResults(), llvm::Value::replaceUsesExceptBlockAddr(), llvm::sampleprof::SampleProfileReader::reportError(), reportIllegalCopy(), llvm::InlineFunctionInfo::reset(), llvm::rdf::Liveness::resetKills(), llvm::orc::rpc::detail::respond(), llvm::reverse(), rewriteComdat(), llvm::ArgumentPromotionPass::run(), llvm::GlobalDCEPass::run(), llvm::rdf::CopyPropagation::run(), llvm::PostOrderFunctionAttrsPass::run(), llvm::PassManager< Function >::run(), llvm::AAEvaluator::run(), llvm::InlinerPass::run(), llvm::WholeProgramDevirtPass::run(), llvm::ModuleToPostOrderCGSCCPassAdaptor< CGSCCPassT >::run(), llvm::FunctionAnalysisManagerCGSCCProxy::run(), llvm::CGSCCToFunctionPassAdaptor< FunctionPassT >::run(), llvm::DevirtSCCRepeatedPass< PassT >::run(), llvm::LazyCallGraphPrinterPass::run(), runCVP(), runImpl(), scalarConstantToHexString(), scaleCaseProbality(), llvm::SchedDFSResult::scheduleTree(), llvm::SDDbgValue::SDDbgValue(), selectELFSectionForGlobal(), llvm::FastISel::selectGetElementPtr(), llvm::FastISel::selectPatchpoint(), llvm::HexagonDAGToDAGISel::SelectSHL(), llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >, ChannelT, FunctionIdT, SequenceNumberT >::sendAppendedCalls(), llvm::orc::rpc::SerializationTraits< ChannelT, Error >::serialize(), llvm::cl::Option::setCategory(), llvm::rdf::CodeNode::setCode(), llvm::GlobalObject::setComdat(), setCoroInfo(), llvm::coverage::CounterMappingContext::setCounts(), llvm::MachinePassRegistry::setDefault(), llvm::GlobalValue::setDLLStorageClass(), setLimitsForBinOp(), llvm::Function::setPrologueData(), llvm::Evaluator::setVal(), shouldInstrumentBlock(), ShrinkDemandedConstant(), llvm::TargetLowering::ShrinkDemandedConstant(), SimplifyAddInst(), simplifyAllocaArraySize(), SimplifyAndInst(), simplifyAndOrOfICmps(), simplifyAssocCastAssoc(), SimplifyAssociativeBinOp(), SimplifyBSwap(), SimplifyCall(), SimplifyCastInst(), llvm::TargetLowering::SimplifyDemandedBits(), simplifyDiv(), simplifyDivRem(), SimplifyFAddInst(), SimplifyFDivInst(), SimplifyFMulInst(), SimplifyFRemInst(), SimplifyFSubInst(), SimplifyGEPInst(), SimplifyICmpInst(), simplifyICmpWithBinOp(), simplifyICmpWithConstant(), simplifyICmpWithMinMax(), SimplifyMulInst(), SimplifyOrInst(), SimplifyRelativeLoad(), simplifyRem(), simplifySelectBitTest(), simplifySelectWithICmpCond(), llvm::TargetLowering::SimplifySetCC(), SimplifyShift(), SimplifySubInst(), SimplifyWithOpReplaced(), simplifyX86movmsk(), SimplifyXorInst(), skipComment(), skipExtensionForVectorMULL(), SkipExtensionForVMULL(), skipWhitespace(), SolveQuadraticEquation(), SplitAddRecs(), llvm::SplitBlockAndInsertIfThen(), llvm::SplitBlockAndInsertIfThenElse(), llvm::formatv_object_base::splitLiteralAndReplacement(), false::Chain::str(), StrengthenNoWrapFlags(), llvm::StripDebugInfo(), stripExtractLoElt(), StripSymbolNames(), SumCanReachMin(), supportedAddressingMode(), llvm::LazyCallGraph::RefSCC::switchInternalEdgeToCall(), llvm::SystemZTargetMachine::SystemZTargetMachine(), llvm::object::Archive::takeThinBuffers(), llvm::AArch64TargetLowering::targetShrinkDemandedConstant(), transformToIndexedCompare(), truncateIVUse(), llvm::HexagonDAGToDAGISel::tryLoadOfLoadIntrinsic(), tryToElideArgumentCopy(), tryToFoldExtendOfConstant(), TypeSizeToSizeIndex(), unescapeQuotedString(), llvm::AssumptionCache::updateAffectedValues(), llvm::updateCGAndAnalysisManagerForFunctionPass(), updateNewSCCFunctionAnalyses(), updatePostorderSequenceForEdgeInsertion(), llvm::UpgradeIntrinsicCall(), UpgradeMaskedLoad(), UpgradeMaskedStore(), usedAsAddr(), useFuncSeen(), ValidLookupTableConstant(), llvm::VerifierSupport::VerifierSupport(), llvm::ObjectSizeOffsetVisitor::visitAllocaInst(), llvm::InstCombiner::visitAnd(), llvm::InstCombiner::visitCallInst(), llvm::InstCombiner::visitExtractElementInst(), llvm::InstCombiner::visitFDiv(), llvm::InstCombiner::visitFMul(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::InstCombiner::visitICmpInst(), llvm::InstCombiner::visitOr(), llvm::LazyCallGraph::visitReferences(), llvm::InstCombiner::visitSRem(), visitUDivOperand(), llvm::InstCombiner::visitXor(), llvm::InstCombiner::visitZExt(), llvm::InnerLoopVectorizer::widenInstruction(), llvm::wouldInstructionBeTriviallyDead(), llvm::orc::rpc::detail::RPCEndpointBase< SingleThreadedRPCEndpoint< ChannelT, FunctionIdT, SequenceNumberT >, ChannelT, FunctionIdT, SequenceNumberT >::wrapAsyncHandler(), llvm::coverage::CoverageFilenamesSectionWriter::write(), llvm::raw_ostream::write(), WriteAsOperandInternal(), llvm::reassociate::XorOpnd::XorOpnd(), llvm::HexagonTargetMachine::~HexagonTargetMachine(), llvm::orc::RemoteObjectLayer< RPCEndpoint >::RemoteSymbolMaterializer::~RemoteSymbolMaterializer(), and llvm::orc::rpc::detail::ResponseHandler< ChannelT >::~ResponseHandler().

◆ Context

LLVMContext& Context = C->getParent()->getContext()

Definition at line 72 of file NVVMIntrRange.cpp.

Referenced by llvm::HexagonMCInstrInfo::addConstExtender(), llvm::InnerLoopVectorizer::addMetadata(), llvm::ThinLTOCodeGenerator::addModule(), addNegOperand(), llvm::LLVMTargetMachine::addPassesToEmitFile(), llvm::IntrinsicLowering::AddPrototypes(), AddRuntimeUnrollDisableMetaData(), llvm::addStringMetadataToLoop(), adjustColumn(), llvm::ARMFrameLowering::adjustForSegmentedStacks(), llvm::analyzeArguments(), AnalyzeReturnValues(), llvm::LoopVersioning::annotateInstWithNoAlias(), llvm::DwarfCompileUnit::applySubprogramAttributesToDefinition(), assureFPCallStub(), llvm::BinaryStreamError::BinaryStreamError(), buildSymbolDiff(), CC_MipsO32_FP64(), llvm::object::Binary::checkOffset(), llvm::object::IRObjectFile::classof(), CloneLoop(), llvm::X86TargetLowering::convertSetCCLogicToBitwiseLogic(), llvm::IRBuilder< TargetFolder >::CreateAggregateRet(), llvm::IRBuilder< TargetFolder >::CreateConstGEP1_32(), llvm::IRBuilder< TargetFolder >::CreateConstGEP1_64(), llvm::IRBuilder< TargetFolder >::CreateConstGEP2_32(), llvm::IRBuilder< TargetFolder >::CreateConstGEP2_64(), llvm::IRBuilder< TargetFolder >::CreateConstInBoundsGEP1_32(), llvm::IRBuilder< TargetFolder >::CreateConstInBoundsGEP1_64(), llvm::IRBuilder< TargetFolder >::CreateConstInBoundsGEP2_32(), llvm::IRBuilder< TargetFolder >::CreateConstInBoundsGEP2_64(), createEmptyFunction(), llvm::IRBuilder< TargetFolder >::CreateFence(), createFPFnStub(), llvm::IRBuilder< TargetFolder >::CreateGlobalStringPtr(), createLocalVariable(), llvm::createMergeFunctionsPass(), llvm::createMIRParser(), CreatePrologue(), llvm::IRBuilder< TargetFolder >::CreatePtrDiff(), llvm::IRBuilder< TargetFolder >::CreateRet(), llvm::IRBuilder< TargetFolder >::CreateRetVoid(), llvm::createShadowStackGCLoweringPass(), llvm::IRBuilder< TargetFolder >::CreateShuffleVector(), createStringMetadata(), llvm::DwarfTypeUnit::createTypeDIE(), llvm::IRBuilder< TargetFolder >::CreateUnreachable(), llvm::HexagonMCInstrInfo::deriveDuplex(), DisableAllLoopOptsOnLoop(), llvm::Module::dropTriviallyDeadConstantArrays(), llvm::MCDwarfLineAddr::Emit(), llvm::MCDwarfFrameEmitter::Emit(), EmitAbsDifference(), llvm::MCDwarfFrameEmitter::EmitAdvanceLoc(), llvm::AsmPrinter::EmitBasicBlockEnd(), emitBasicBlockLoopComments(), llvm::AsmPrinter::EmitBasicBlockStart(), llvm::MipsTargetELFStreamer::emitDirectiveEnd(), llvm::AsmPrinter::emitDwarfAbbrevs(), emitEncodingByte(), llvm::MipsTargetELFStreamer::emitFrame(), llvm::emitFWrite(), llvm::AMDGPUTargetELFStreamer::EmitHSAMetadata(), llvm::MipsELFStreamer::EmitInstruction(), llvm::AMDGPUTargetELFStreamer::EmitISAVersion(), llvm::emitMemChr(), llvm::emitMemCmp(), llvm::emitMemCpyChk(), llvm::MipsTargetELFStreamer::emitMipsAbiFlags(), llvm::ARMFrameLowering::emitPrologue(), llvm::ARCFrameLowering::emitPrologue(), llvm::emitStrLen(), llvm::emitStrNCmp(), EmitSymbolRefWithOfs(), llvm::TargetLoweringBase::enableAggressiveFMAFusion(), llvm::yaml::IO::enumFallback(), EqualityPropUnSafe(), ErrorFromHResult(), llvm::errorToErrorCodeAndEmitErrors(), llvm::AVRMCExpr::evaluateAsRelocatableImpl(), llvm::PPCMCExpr::evaluateAsRelocatableImpl(), llvm::DwarfAccelTable::FinalizeTable(), llvm::CodeExtractor::findInputsOutputs(), findUnwindDestinations(), llvm::AVRTargetStreamer::finish(), llvm::symbolize::LLVMSymbolizer::flush(), llvm::AMDGPULibCalls::fold(), forceExpAbs(), FunctionNumber(), llvm::MCAsmBackend::generateCompactUnwindEncoding(), llvm::TypeBuilder< T *, cross >::get(), llvm::TypeBuilder< T[N], cross >::get(), llvm::TypeBuilder< T[], cross >::get(), llvm::TypeBuilder< R(), cross >::get(), llvm::TypeBuilder< R(A1), cross >::get(), llvm::TypeBuilder< R(A1, A2), cross >::get(), llvm::ConstantFP::get(), llvm::TypeBuilder< R(A1, A2, A3), cross >::get(), llvm::TypeBuilder< R(A1, A2, A3, A4), cross >::get(), llvm::TypeBuilder< R(A1, A2, A3, A4, A5), cross >::get(), llvm::TypeBuilder< R(...), cross >::get(), llvm::TypeBuilder< R(A1,...), cross >::get(), llvm::TypeBuilder< R(A1, A2,...), cross >::get(), llvm::TypeBuilder< R(A1, A2, A3,...), cross >::get(), llvm::TypeBuilder< R(A1, A2, A3, A4,...), cross >::get(), llvm::TypeBuilder< R(A1, A2, A3, A4, A5,...), cross >::get(), llvm::MDString::get(), llvm::object::Archive::Child::getAccessMode(), llvm::MMIAddrLabelMap::getAddrLabelSymbolToEmit(), GetAEABIUnwindPersonalityName(), llvm::IRTranslator::getAnalysisUsage(), llvm::object::Archive::Child::getAsBinary(), llvm::getBitcodeFileContents(), llvm::AVRTargetLowering::getCmpLibcallReturnType(), getComparePred(), getCompoundInsn(), llvm::BitcodeReaderValueList::getConstantFwdRef(), llvm::IRBuilderBase::getContext(), llvm::Type::getContext(), llvm::MachineModuleInfo::getContext(), llvm::LLParser::getContext(), llvm::DWARFUnit::getContext(), llvm::MCStreamer::getContext(), llvm::Module::getContext(), llvm::AttributeListImpl::getContext(), llvm::MCAssembler::getContext(), llvm::CCState::getContext(), llvm::ReplaceableMetadataImpl::getContext(), llvm::SelectionDAG::getContext(), llvm::ContextualFoldingSet< T, Ctx >::getContext(), llvm::SparcTargetLowering::getExceptionSelectorRegister(), llvm::XCoreTargetLowering::getExceptionSelectorRegister(), llvm::MCAsmInfo::getExprForFDESymbol(), llvm::AArch64MCAsmInfoDarwin::getExprForPersonalitySymbol(), llvm::X86_64MCAsmInfoDarwin::getExprForPersonalitySymbol(), getGlobalOffsetTable(), getGNUBinOpPrecedence(), llvm::DwarfTypeUnit::getHeaderSize(), getKeyValMD(), llvm::InvokeInst::getLandingPadInst(), getLazyIRModule(), llvm::DwarfCompileUnit::getMacroLabelBegin(), getMemCmpLoad(), llvm::DwarfUnit::getOrCreateTypeDIE(), llvm::EVT::getPow2VectorType(), GetRegistersForValue(), llvm::MSP430TargetLowering::getScalarShiftAmountTy(), llvm::MipsTargetLowering::getScalarShiftAmountTy(), llvm::InstrProfIncrementInst::getStep(), llvm::AMDGPUTargetELFStreamer::getStreamer(), llvm::ConstantDataArray::getString(), getSymbols(), getTLSGetOffset(), getUnderlyingArgReg(), getUniformBase(), llvm::DWARFUnitSection< llvm::DWARFCompileUnit >::getUnitForIndexEntry(), llvm::PerFunctionMIParsingState::getVRegInfo(), llvm::Attribute::getWithAlignment(), llvm::Attribute::getWithAllocSizeArgs(), llvm::Attribute::getWithDereferenceableBytes(), llvm::Attribute::getWithDereferenceableOrNullBytes(), llvm::Attribute::getWithStackAlignment(), llvm::MCCodePadder::handleBasicBlockStart(), llvm::DwarfUnit::hasContent(), hasOnlySelectUsers(), hasZeroSignBit(), llvm::SelectionDAGBuilder::init(), INITIALIZE_PASS(), llvm::GenericScheduler::initPolicy(), llvm::HexagonMCInstrInfo::inRange(), llvm::SystemZTargetLowering::insertSSPDeclarations(), IntersectUnsignedRange(), isBroadcastShuffle(), isImplicitOperandIn(), llvm::LLVMTargetMachine::isMachineVerifierClean(), llvm::AArch64TargetLowering::isNoopAddrSpaceCast(), llvm::X86TargetLowering::isNoopAddrSpaceCast(), llvm::ARMTargetLowering::isSelectSupported(), LLVMGetCurrentDebugLocation(), LLVMGetMDNodeOperands(), LLVMGetNamedMetadataOperands(), LLVMMDNodeInContext(), LLVMMDStringInContext(), lowerCallResult(), LowerCallResult(), llvm::IntrinsicLowering::LowerIntrinsicCall(), lowerSubFn(), makeCombineInst(), mapArchToCVCPUType(), llvm::yaml::IO::mapOptionalWithContext(), MatchingStackOffset(), mayTailCallThisCC(), llvm::MCCodePadder::MCCodePadder(), llvm::MIPrinter::MIPrinter(), llvm::MipsRegInfoRecord::MipsRegInfoRecord(), llvm::Module::ModuleFlagEntry::ModuleFlagEntry(), llvm::MDNode::mutable_operands(), nextReg(), llvm::parseAssembly(), llvm::parseAssemblyFile(), llvm::parseIRFile(), llvm::parseModule(), peekThroughBitcast(), PrepareCall(), llvm::LoopVersioning::prepareNoAliasMetadata(), previousIsLoop(), llvm::MIPrinter::print(), llvm::DefaultContextualFoldingSetTrait< T, Ctx >::Profile(), PushArgMD(), llvm::RandomIRBuilder::RandomIRBuilder(), readTriple(), removeCoroEnds(), llvm::CallGraphSCC::ReplaceNode(), replaceUnwindCoroEnds(), ReplaceUsesOfWith(), llvm::MCELFStreamer::reset(), llvm::ThinLTOCodeGenerator::run(), llvm::AMDGPUAsmPrinter::runOnMachineFunction(), llvm::yaml::IO::setContext(), llvm::LTOCodeGenerator::setDiagnosticHandler(), llvm::TargetLoweringBase::setJumpIsExpensive(), llvm::Loop::setLoopAlreadyUnrolled(), llvm::LoopPass::skipLoop(), SolveQuadraticEquation(), srcMgrDiagHandler(), llvm::PPCTargetLowering::supportSplitCSR(), llvm::object::SymbolicFile::SymbolicFile(), llvm::object::SymbolicFile::symbols(), UnpackFromArgumentSlot(), llvm::DwarfUnit::updateAcceleratorTables(), llvm::UpgradeBitCastExpr(), llvm::UpgradeBitCastInst(), llvm::UpgradeTBAANode(), WriteAsOperandInternal(), WriteConstantInternal(), and llvm::X86CallLowering::X86CallLowering().

◆ High

uint64_t High

◆ Int32Ty

IntegerType* Int32Ty = Type::getInt32Ty(Context)

◆ LowAndHigh

Metadata* LowAndHigh[]
Initial value:
= {
ConstantAsMetadata::get(ConstantInt::get(Int32Ty, Low)),
ConstantAsMetadata::get(ConstantInt::get(Int32Ty, High))}
uint64_t High
IntegerType * Int32Ty

Definition at line 74 of file NVVMIntrRange.cpp.

Referenced by foldCtpop(), and foldCttzCtlz().

◆ NVVMIntrRangeSM

cl::opt<unsigned> NVVMIntrRangeSM("nvvm-intr-range-sm", cl::init(20), cl::Hidden, cl::desc("SM variant"))
static

◆ true

return true

Definition at line 78 of file NVVMIntrRange.cpp.