LLVM
8.0.1
|
LLVM Value Representation. More...
#include "llvm/IR/Value.h"
Public Types | |
enum | ValueTy |
Concrete subclass of this. More... | |
using | use_iterator = use_iterator_impl< Use > |
using | const_use_iterator = use_iterator_impl< const Use > |
using | user_iterator = user_iterator_impl< User > |
using | const_user_iterator = user_iterator_impl< const User > |
Static Public Attributes | |
static const unsigned | MaxAlignmentExponent = 29 |
The maximum alignment for instructions. More... | |
static const unsigned | MaximumAlignment = 1u << MaxAlignmentExponent |
Protected Types | |
enum | : unsigned { NumUserOperandsBits = 28 } |
The number of operands in the subclass. More... | |
Protected Member Functions | |
Value (Type *Ty, unsigned scid) | |
~Value () | |
Value's destructor should be virtual by design, but that would require that Value and all of its subclasses have a vtable that effectively duplicates the information in the value ID. More... | |
unsigned short | getSubclassDataFromValue () const |
void | setValueSubclassData (unsigned short D) |
Protected Attributes | |
unsigned char | SubclassOptionalData: 7 |
Hold subclass data that can be dropped. More... | |
unsigned | NumUserOperands: NumUserOperandsBits |
unsigned | IsUsedByMD: 1 |
unsigned | HasName: 1 |
unsigned | HasHungOffUses: 1 |
unsigned | HasDescriptor: 1 |
Friends | |
class | ValueAsMetadata |
class | ValueHandleBase |
LLVM Value Representation.
This is a very important LLVM class. It is the base class of all values computed by a program that may be used as operands to other values. Value is the super class of other important classes such as Instruction and Function. All Values have a Type. Type is not a subclass of Value. Some values can have a name and they belong to some Module. Setting the name on the Value automatically updates the module's symbol table.
Every value has a "use list" that keeps track of which other Values are using this Value. A Value can also have an arbitrary number of ValueHandle objects that watch it and listen to RAUW and Destroy events. See llvm/IR/ValueHandle.h for details.
using llvm::Value::const_use_iterator = use_iterator_impl<const Use> |
using llvm::Value::const_user_iterator = user_iterator_impl<const User> |
using llvm::Value::use_iterator = use_iterator_impl<Use> |
using llvm::Value::user_iterator = user_iterator_impl<User> |
|
protected |
The number of operands in the subclass.
This member is defined by this class, but not used for anything. Subclasses can use it to store their number of operands, if they have any.
This is stored here to save space in User on 64-bit hosts. Since most instances of Value have operands, 32-bit hosts aren't significantly affected.
Note, this should NOT be used directly by any class other than User. User uses this value to find the Use list.
Enumerator | |
---|---|
NumUserOperandsBits |
enum llvm::Value::ValueTy |
Definition at line 53 of file Value.cpp.
References assert(), llvm::MCID::Call, llvm::Type::isFirstClassType(), llvm::Type::isStructTy(), and llvm::Type::isVoidTy().
Referenced by llvm::cl::ValuesClass::apply(), llvm::BasicBlock::getContext(), llvm::getValueProfDataFromInst(), setBranchWeights(), and ValuesOverlap().
|
protected |
Value's destructor should be virtual by design, but that would require that Value and all of its subclasses have a vtable that effectively duplicates the information in the value ID.
As a size optimization, the destructor has been protected, and the caller should manually call deleteValue.
Definition at line 72 of file Value.cpp.
References assert(), llvm::dbgs(), getName(), llvm::ValueAsMetadata::handleDeletion(), isUsedByMetadata(), use_empty(), users(), and llvm::ValueHandleBase::ValueIsDeleted().
|
inline |
This method should only be used by the Use class.
Definition at line 437 of file Value.h.
Referenced by llvm::Use::set(), and llvm::Use::swap().
|
inline |
Definition at line 317 of file Value.h.
References assertModuleIsMaterializedImpl().
Referenced by use_begin(), use_empty(), user_back(), user_begin(), user_empty(), users(), and uses().
void Value::assertModuleIsMaterializedImpl | ( | ) | const |
Definition at line 351 of file Value.cpp.
References assert(), llvm::dyn_cast(), llvm::GlobalValue::getParent(), and llvm::Module::isMaterialized().
Referenced by assertModuleIsMaterialized(), and hasName().
|
inline |
Clear the optional flags contained in this value.
Definition at line 476 of file Value.h.
References SubclassOptionalData.
Referenced by ClearSubclassDataAfterReassociation(), LinearizeExprTree(), and simplifyAssocCastAssoc().
void Value::deleteValue | ( | ) |
Delete a pointer to a generic Value.
Definition at line 98 of file Value.cpp.
References llvm::StringMapEntry< ValueTy >::Destroy(), getValueID(), getValueName(), llvm_unreachable, Name, and setValueName().
Referenced by llvm::BitcodeReaderValueList::assignValue(), llvm::CloneFunction(), createAndInstr(), llvm::ilist_alloc_traits< Instruction >::deleteNode(), llvm::ilist_alloc_traits< MemoryAccess >::deleteNode(), llvm::JumpThreadingPass::DuplicateCondBranchOnPHIIntoPred(), FoldCondBranchOnPHI(), FunctionNumber(), isOnlyReachableViaThisEdge(), okayForPHIOfOps(), llvm::ValueDeleter::operator()(), shouldRotateLoopExitingLatch(), and llvm::sroa::AllocaSliceRewriter::visit().
const Value * Value::DoPHITranslation | ( | const BasicBlock * | CurBB, |
const BasicBlock * | PredBB | ||
) | const |
Translate PHI node to its predecessor from the given basic block.
If this value is a PHI node with CurBB as its parent, return the value in the PHI node corresponding to PredBB. If not, return ourself. This is useful if you want to know the value something has in a predecessor block.
Definition at line 697 of file Value.cpp.
References llvm::dyn_cast(), and llvm::PHINode::getIncomingValueForBlock().
Referenced by llvm::JumpThreadingPass::ComputeValueKnownInPredecessorsImpl(), DoPHITranslation(), foldOperationIntoPhiValue(), okayForPHIOfOps(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), and stripInBoundsOffsets().
|
inline |
Definition at line 586 of file Value.h.
References DoPHITranslation().
LLVM_DUMP_METHOD void Value::dump | ( | ) | const |
Support for debugging, callable in GDB: V->dump()
Definition at line 4298 of file AsmWriter.cpp.
References llvm::dbgs(), LLVM_DUMP_METHOD, and print().
Referenced by AddMACCandidate(), analyzeLoopUnrollCost(), AreAliased(), AreSequentialAccesses(), buildMultiplyTree(), CheckMACMemory(), CreateLoadIns(), llvm::DebugLocEntry::Value::dump(), llvm::GVNExpression::Expression::dump(), dump(), dumpIR(), emitSignedInt64(), getChainID(), getNarrowIntrinsic(), llvm::slpvectorizer::BoUpSLP::getSpillCost(), INITIALIZE_PASS(), llvm::ExecutionEngine::InitializeMemory(), IsNarrowSequence(), isUnconditionalBranch(), llvm::LoopPredicationPass::run(), llvm::GVN::run(), scaleWeights(), and sinkAndCmp0Expression().
LLVMContext & Value::getContext | ( | ) | const |
All values hold a context through their type.
Definition at line 705 of file Value.cpp.
References llvm::Type::getContext().
Referenced by llvm::GlobalVariable::addAttribute(), llvm::Function::addAttribute(), llvm::Function::addAttributes(), llvm::Function::addDereferenceableAttr(), llvm::Function::addDereferenceableOrNullAttr(), llvm::Function::addDereferenceableOrNullParamAttr(), llvm::Function::addDereferenceableParamAttr(), llvm::Function::addParamAttr(), llvm::Function::addParamAttrs(), llvm::LoopAccessInfo::addRuntimeChecks(), llvm::SelectInst::areInvalidOperands(), asmClobbersCTR(), BitCastConstantVector(), BuildConstantFromSCEV(), buildMultiplyTree(), canonicalizeSaturatedSubtract(), CanShareConstantPoolEntry(), canTransformToMemCmp(), CC_MipsO32_FP64(), llvm::changeToUnreachable(), llvm::Function::clearGC(), llvm::FenceInst::cloneImpl(), llvm::UnreachableInst::cloneImpl(), CloneLoop(), collectInsertionElements(), collectShuffleElements(), collectSingleShuffleElements(), combineLoadToNewType(), combineLoadToOperationType(), computeAddrSpace(), computeBytesPoppedByCalleeForSRet(), llvm::ComputeMultiple(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), computeRecurrenceType(), llvm::JumpThreadingPass::ComputeValueKnownInPredecessorsImpl(), computeValueLLTs(), llvm::ConstantFoldBinaryInstruction(), llvm::ConstantFoldCastInstruction(), llvm::ConstantFoldCompareInstruction(), llvm::ConstantFoldGetElementPtr(), llvm::ConstantFoldInsertElementInstruction(), llvm::ConstantFoldLoadThroughBitcast(), llvm::ConstantFoldShuffleVectorInstruction(), convert_i1_to_i8(), ConvertDoubleToBytes(), ConvertToSInt(), llvm::copyNonnullMetadata(), llvm::copyRangeMetadata(), llvm::SelectionDAGBuilder::CopyValueToVirtualRegister(), llvm::ARMConstantPoolConstant::Create(), llvm::InnerLoopVectorizer::createBitOrPointerCast(), createCallInst(), llvm::IRBuilderBase::CreateElementUnorderedAtomicMemMove(), llvm::createFalkorMarkStridedAccessesPass(), llvm::createObjCARCOptPass(), CreatePrologue(), llvm::createSeparateConstOffsetFromGEPPass(), despeculateCountZeros(), detectShiftUntilZeroIdiom(), eliminateDeadSwitchCases(), emitSignedInt64(), evaluateInDifferentElementOrder(), expandBounds(), llvm::SCEVExpander::expandUnionPredicate(), llvm::SCEVExpander::expandWrapPredicate(), ExtractConstantBytes(), extractMDNode(), findBasePointer(), llvm::FindDbgAddrUses(), llvm::findDbgUsers(), llvm::findDbgValues(), findInitTrampoline(), llvm::CodeExtractor::findInputsOutputs(), foldBitcastExtElt(), foldConstantInsEltIntoShuffle(), foldCtpop(), foldCttzCtlz(), foldICmpShlOne(), foldInsSequenceIntoBroadcast(), llvm::InstCombiner::FoldShiftByConstant(), llvm::formLCSSAForInstructions(), genLoopLimit(), llvm::ConstantAggregateZero::get(), llvm::ValueAsMetadata::get(), llvm::ConstantPointerNull::get(), llvm::ConstantExpr::get(), llvm::UndefValue::get(), getArrayElements(), getAsConstantIndexedAddress(), llvm::GlobalVariable::getAttributesAsList(), getBoundsCheckCond(), llvm::GlobalValue::getComdat(), getComparePred(), llvm::LazyValueInfo::getConstant(), getConstantAt(), GetConstantInt(), llvm::LazyValueInfo::getConstantOnEdge(), llvm::ValueAsMetadata::getContext(), getEdgeValueLocal(), llvm::ConstantDataSequential::getElementAsConstant(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantExpr::getExtractValue(), llvm::ConstantExpr::getFCmp(), getFPSequenceIfElementsMatch(), llvm::Function::getGC(), llvm::ConstantExpr::getGetElementPtr(), llvm::ConstantExpr::getICmp(), llvm::ValueAsMetadata::getIfExists(), llvm::ConstantExpr::getInsertElement(), llvm::ConstantExpr::getInsertValue(), getIntSequenceIfElementsMatch(), llvm::InvokeInst::getLandingPadInst(), GetLoopInvariantInsertPosition(), getMemCmpLoad(), getName(), getNegativeIsTrueBoolVec(), llvm::CallBase::getNumSubclassExtraOperands(), llvm::getObjectSize(), getOffsetFromIndices(), getParentPad(), llvm::FastISel::getRegForValue(), getRelevantOperands(), GetRMWLibcall(), llvm::ConstantExpr::getSelect(), llvm::ConstantDataVector::getSplat(), getSqrtCall(), llvm::SITargetLowering::getTgtMemIntrinsic(), getTrueOrFalseValue(), getType(), llvm::ConstantStruct::getTypeForElements(), getUnderlyingArgReg(), getValueName(), handleBrSelExpect(), llvm::Constant::handleOperandChange(), handleSwitchExpect(), hasSameExtUse(), INITIALIZE_PASS(), llvm::InlineFunction(), llvm::insertDebugValuesForPHIs(), isBroadcastShuffle(), llvm::isBytewiseValue(), llvm::CmpInst::isImpliedFalseByMatchingCmp(), isLoadInvariantInLoop(), isOrdered(), isReportingError(), llvm::LibCallSimplifier::LibCallSimplifier(), LLVMGetOperand(), LLVMSetParamAlignment(), lookThroughAnd(), llvm::BlockAddress::lookup(), llvm::IntrinsicLowering::LowerIntrinsicCall(), lowerSubFn(), llvm::makeGuardControlFlowExplicit(), makeStatepointExplicitImpl(), matchesOr(), mayLoopAccessLocation(), llvm::MergeBasicBlockIntoOnlyPred(), mergeCleanupPad(), mergeInlinedArrayAllocas(), llvm::EscapeEnumerator::Next(), OptimizeGlobalAddressOfMalloc(), OptimizeNoopCopyExpression(), optimizeVectorResize(), parseOptionalLinkageAux(), llvm::peelLoop(), false::LibCallsShrinkWrap::perform(), PerformHeapAllocSRoA(), llvm::CallBase::populateBundleOperandInfos(), processCallSite(), processCmp(), processOverflowIntrinsic(), processUDivOrURem(), processUGT_ADDCST_ADD(), llvm::pgo::promoteIndirectCall(), ReduceSwitchRange(), llvm::remapInstruction(), llvm::Function::removeAttribute(), llvm::Function::removeAttributes(), llvm::SwitchInst::removeCase(), llvm::Function::removeParamAttr(), llvm::Function::removeParamAttrs(), llvm::coro::replaceCoroFree(), llvm::replaceDbgValueForAlloca(), replaceExtractElements(), ReplaceFPIntrinsicWithCall(), ReplaceUsesOfWith(), rewriteDebugUsers(), RewriteUsesOfClonedInstructions(), llvm::salvageDebugInfo(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), llvm::FastISel::selectBinaryOp(), llvm::FastISel::selectFNeg(), llvm::MemIntrinsicBase< AnyMemIntrinsic >::setDestAlignment(), llvm::AtomicMemIntrinsic::setElementSizeInBytes(), llvm::Function::setEntryCount(), llvm::Function::setGC(), setNoClobberMetadata(), llvm::Instruction::setProfWeight(), llvm::Function::setPrologueData(), llvm::GlobalObject::setSection(), llvm::Function::setSectionPrefix(), setUsedInitializer(), setValueName(), shouldFixMainFunction(), ShrinkDemandedConstant(), shrinkFPConstant(), SimplifyICmpInst(), simplifyICmpWithBinOp(), simplifyNeonTbl1(), SimplifyRelativeLoad(), SimplifyTerminatorOnSelect(), simplifyX86extrq(), simplifyX86movmsk(), simplifyX86pshufb(), simplifyX86vpermilvar(), simplifyX86vpermv(), llvm::SplitCriticalEdge(), splitGlobal(), splitMergedValStore(), SRAGlobal(), TryToShrinkGlobalToBoolean(), tryUnmergingGEPsAcrossIndirectBr(), turnGuardIntoBranch(), TurnSwitchRangeIntoICmp(), llvm::UnreachableInst::UnreachableInst(), unswitchNontrivialInvariants(), unswitchTrivialBranch(), updateBranchWeights(), llvm::Instruction::updateProfWeight(), llvm::UpgradeBitCastExpr(), llvm::UpgradeBitCastInst(), llvm::UpgradeIntrinsicCall(), llvm::AMDGPULibCalls::useNative(), llvm::ValueHandleBase::ValueIsDeleted(), llvm::ValueHandleBase::ValueIsRAUWd(), llvm::sroa::AllocaSliceRewriter::visit(), llvm::InstCombiner::visitAllocSite(), llvm::InstCombiner::visitBitCast(), llvm::InstCombiner::visitExtractElementInst(), llvm::InstCombiner::visitFree(), llvm::InstCombiner::visitIntToPtr(), llvm::InstCombiner::visitPtrToInt(), llvm::Interpreter::visitReturnInst(), llvm::InstCombiner::visitShuffleVectorInst(), llvm::InstCombiner::visitSwitchInst(), wrapConstantAsMetadata(), and X86ChooseCmpImmediateOpcode().
StringRef Value::getName | ( | ) | const |
Return a constant reference to the value's name.
This guaranteed to return the same reference as long as the value is not modified. If the value has a name, this does a hashtable lookup, so it's not free.
Definition at line 214 of file Value.cpp.
References assert(), llvm::StringMapEntry< ValueTy >::Create(), llvm::StringRef::empty(), llvm::StringRef::find_first_of(), getContext(), llvm::StringMapEntry< ValueTy >::getKey(), getSymTab(), getType(), getValueName(), hasName(), llvm::Twine::isTriviallyEmpty(), llvm::max(), NonGlobalValueMaxNameSize, llvm::StringRef::npos, llvm::StringMapEntry< ValueTy >::setValue(), setValueName(), llvm::StringRef::size(), llvm::ARM_MB::ST, llvm::StringRef::substr(), and llvm::Twine::toStringRef().
Referenced by AddAliasScopeMetadata(), llvm::SSAUpdaterBulk::AddAvailableValue(), addForcedAttributes(), llvm::SSAUpdaterBulk::AddUse(), llvm::X86FrameLowering::adjustForHiPEPrologue(), analyzeParsePointLiveness(), llvm::DiagnosticInfoOptimizationBase::Argument::Argument(), asmClobbersCTR(), assertBranchOrSelectConditionHoisted(), assureFPCallStub(), llvm::WinException::beginFunction(), llvm::BTFDebug::beginFunctionImpl(), llvm::CFGMST< Edge, BBInfo >::buildEdges(), buildFrameType(), buildMultiplyTree(), llvm::BlockFrequencyInfo::calculate(), llvm::BranchProbabilityInfo::calculate(), calculateCXXStateNumbers(), calculateSEHStateNumbers(), llvm::Interpreter::callExternalFunction(), callsiteIsHot(), llvm::canConstantFoldCallTo(), canonicalizeLowbitMask(), canonicalizeSaturatedSubtract(), CanPropagatePredecessorsForPHIs(), llvm::canRenameComdatFunc(), llvm::changeToInvokeAndSplitBasicBlock(), cheapToScalarize(), llvm::classifyEHPersonality(), llvm::CloneBasicBlock(), llvm::CloneFunction(), llvm::orc::cloneFunctionDecl(), llvm::orc::cloneGlobalAliasDecl(), llvm::orc::cloneGlobalVariableDecl(), cloneInstForMustTail(), CloneInstructionInExitBlock(), CloneLoop(), CloneLoopBlocks(), llvm::colorEHFunclets(), combineInstructionsOverFunction(), combineLoadToNewType(), llvm::InstCombiner::commonShiftTransforms(), compareNames(), computeAddrSpace(), llvm::ConstantFoldCall(), ConstructSSAForLoadSet(), llvm::convertToDeclaration(), ConvertToSInt(), llvm::CallInst::Create(), llvm::InvokeInst::Create(), llvm::createBlockExtractorPass(), createClone(), llvm::createConstantHoistingPass(), createFPFnStub(), llvm::createGCInfoPrinter(), llvm::createPGOFuncNameMetadata(), CreatePrologue(), createReplacementInstr(), createResumeEntryBlock(), llvm::createScalarizerPass(), llvm::createSeparateConstOffsetFromGEPPass(), llvm::createShadowStackGCLoweringPass(), CreateWrapper(), llvm::VPBlockBase::deleteCFG(), deleteDeadInstruction(), llvm::DemotePHIToStack(), llvm::DemoteRegToStack(), llvm::NVPTXAsmPrinter::doFinalization(), llvm::AsmPrinter::doFinalization(), llvm::FunctionImportGlobalProcessing::doImportAsDefinition(), doPromotion(), llvm::GVNExpression::Expression::dump(), llvm::DomTreeUpdater::dump(), llvm::AliasSetTracker::dump(), llvm::CFGMST< Edge, BBInfo >::dumpEdges(), dumpIR(), llvm::JumpThreadingPass::DuplicateCondBranchOnPHIIntoPred(), llvm::DuplicateInstructionsInSplitBetween(), EmitCamlGlobal(), llvm::AsmPrinter::EmitDebugValue(), llvm::EmitGEPOffset(), llvm::ExecutionEngine::emitGlobals(), llvm::AMDGPU::HSAMD::MetadataStreamerV3::emitKernel(), llvm::AsmPrinter::EmitSpecialLLVMGlobal(), enableCallSafepoints(), llvm::LazyValueInfo::enableDT(), llvm::WinException::endFunclet(), eraseDeadBBsAndChildren(), llvm::Evaluator::EvaluateBlock(), EvaluateStaticConstructor(), llvm::VPBasicBlock::execute(), findBaseDefiningValueCached(), findBasePointer(), llvm::CodeExtractor::findInputsOutputs(), FindPredecessorAutoreleaseWithSafePath(), findReturnsToZap(), llvm::AMDGPULibCalls::fold(), llvm::foldBlockIntoPredecessor(), llvm::FoldBranchToCommonDest(), FoldCondBranchOnPHI(), foldICmpShlOne(), foldICmpWithHighBitMask(), foldICmpWithMinMax(), foldLogicCastConstant(), foldOperationIntoSelectOperand(), llvm::InstCombiner::FoldShiftByConstant(), foldSignedTruncationCheck(), FoldTwoEntryPHINode(), forceRenaming(), forEachUser(), llvm::formLCSSAForInstructions(), FunctionNumber(), getAllocationDataForFunction(), getArrayElements(), getBinOpsForFactorization(), llvm::bfi_detail::getBlockName(), getBranchHint(), getBranchInsertPoint(), getChainID(), llvm::Intrinsic::getDeclaration(), getDescription(), llvm::DeadArgumentEliminationPass::RetOrArg::getDescription(), getEdgeValueLocal(), getEncodedUnnamedAddr(), llvm::HexagonTargetObjectFile::getExplicitSectionGlobal(), llvm::TargetLoweringObjectFileELF::getExplicitSectionGlobal(), llvm::TargetLoweringObjectFileMachO::getExplicitSectionGlobal(), llvm::TargetLoweringObjectFileWasm::getExplicitSectionGlobal(), getFromRangeMetadata(), llvm::MachineBasicBlock::getFullName(), llvm::GlobalValue::getGlobalIdentifier(), GetGlobalTypeString(), llvm::DOTGraphTraits< const Function * >::getGraphName(), GetHeapSROAValue(), llvm::getInlineCost(), getLayoutSuccessorProbThreshold(), llvm::TargetLibraryInfoImpl::getLibFunc(), llvm::ExecutionEngine::getMangledName(), getMCSymbolForMBB(), getMinVisibility(), llvm::DiagnosticInfoOptimizationBase::getMsg(), getName(), llvm::StackSafetyInfo::FunctionInfo::getName(), llvm::MachineFunction::getName(), llvm::Mangler::getNameWithPrefix(), getNarrowIntrinsic(), getOnlyLiveSuccessor(), getOpenCLAlignment(), llvm::GetOrCreateFunctionComdat(), llvm::AArch64InstrInfo::getOutliningType(), llvm::DwarfUnit::getParentContextString(), getParentPad(), llvm::getPGOFuncName(), GetPointerOperand(), llvm::orc::OrcMCJITReplacement::getPointerToFunction(), getPow(), getRetComponentType(), llvm::getSamplerName(), llvm::sampleprof::SampleProfileReader::getSamplesFor(), getScalarIntrinsicDeclaration(), getSelectFoldableConstant(), getSignature(), getSqrtCall(), getStartOrEndSlot(), llvm::ARMBaseTargetMachine::getSubtargetImpl(), getSuccPad(), getSuccState(), llvm::getSurfaceName(), llvm::getTextureName(), getTypePartition(), getVarName(), getVectorCallCost(), GlobalWasGeneratedByCompiler(), HandleByValArgument(), hasName(), hoist(), llvm::hoistRegion(), HoistThenElseCodeToIf(), INITIALIZE_PASS(), llvm::MIRParserImpl::initializeFrameInfo(), llvm::InlineFunction(), llvm::DivergenceAnalysis::inRegion(), llvm::InsertPreheaderForLoop(), insertSpills(), insertUniqueBackedgeBlock(), instrumentMaskedLoadOrStore(), llvm::InternalizePass::internalizeModule(), isAlwaysFoldable(), isCalleeLoad(), isCallPromotable(), llvm::WebAssembly::isCatchAllTerminatePad(), llvm::WebAssembly::isCatchTerminatePad(), isDirectCall(), llvm::isFreeCall(), isFuncOrderCorrect(), isGCSafepointPoll(), llvm::HexagonTargetObjectFile::isGlobalInSmallSection(), isIgnorableInst(), isInPartition(), isInSymtab(), isIntrinsicInline(), isKnownLibFunction(), isKnownTypeIdMember(), isLoadConditional(), isLoopInvariant(), llvm::TargetTransformInfoImplBase::isLoweredToCall(), isObjectDereferencedInBlock(), isOnlyReachableViaThisEdge(), isReassociableOp(), isReInterleaveMask(), isReportingError(), isSafeAndProfitableToSinkLoad(), isSafeToPromoteArgument(), isSortedByValueNo(), isThunkProfitable(), isTrivialLoopExitBlock(), isUnconditionalBranch(), isWrapperOnlyCall(), llvm::LibCallSimplifier::LibCallSimplifier(), llvm::LoadAndStorePromoter::LoadAndStorePromoter(), llvm::log2(), lookupFunction(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::TargetLoweringObjectFileCOFF::lowerRelativeReference(), llvm::IntrinsicLowering::LowerToByteSwap(), llvm::TargetLowering::LowerToTLSEmulatedModel(), llvm::lto::LTO::LTO(), makeStatepointExplicitImpl(), mapBinOpcode(), llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::MarkBlockExecutable(), MarkBlocksLiveIn(), matchDeMorgansLaws(), llvm::maybeMarkSanitizerLibraryCallNoBuiltin(), maybePrintComdat(), mayLoopAccessLocation(), mergeConstants(), moveUp(), nearest_common_dominator(), needsRuntimeRegistrationOfSectionRange(), llvm::TargetRegisterInfo::needsStackRealignment(), NegateValue(), normalizePBQPSpillWeight(), llvm::DiagnosticPrinterRawOStream::operator<<(), false::operator<<(), llvm::rdf::operator<<(), optimizeDoubleFP(), OptimizeGlobalAddressOfMalloc(), llvm::OptLevelChanger::OptLevelChanger(), llvm::AArch64::parseCPUArch(), llvm::ARM::parseCPUArch(), llvm::peelLoop(), PerformHeapAllocSRoA(), llvm::PHITransAddr::PHITranslateWithInsertion(), populateWorklist(), llvm::LinkDiagnosticInfo::print(), llvm::LegacyDivergenceAnalysis::print(), llvm::Trace::print(), llvm::ValueEnumerator::print(), llvm::MemoryDepChecker::Dependence::print(), llvm::GPUDivergenceAnalysis::print(), llvm::CallGraphNode::print(), llvm::MemoryPhi::print(), llvm::MachineBasicBlock::print(), llvm::DiagnosticInfoUnsupported::print(), llvm::BranchProbabilityInfo::printEdgeProbability(), printIRBlockReference(), printIRValueReference(), PrintLLVMName(), printNode(), printNodeDOT(), processAShr(), llvm::JumpThreadingPass::ProcessBlock(), processGlobal(), processInternalGlobal(), llvm::LoopVectorizePass::processLoop(), processLoopInVPlanNativePath(), processOverflowIntrinsic(), processSDiv(), processSRem(), llvm::JumpThreadingPass::ProcessThreadableEdges(), processUDivOrURem(), processUGT_ADDCST_ADD(), llvm::promoteLoopAccessesToScalars(), PushArgMD(), llvm::GVNHoist::rank(), llvm::Function::recalculateIntrinsicID(), llvm::ImportedFunctionsInliningStatistics::recordInline(), recoverFramePointer(), llvm::Intrinsic::remangleIntrinsicFunction(), rename(), replace(), ReplaceCallWith(), replaceDominatedUsesWith(), ReplaceUsesOfWith(), reportMayClobberedLoad(), RetagMask(), rewriteComdat(), RewriteHeapSROALoadUser(), rewriteMaterializableInstructions(), rewritePHIs(), RewriteUsesOfClonedInstructions(), llvm::LoopAccessInfoPrinterPass::run(), llvm::IRCEPass::run(), llvm::LoopDataPrefetchPass::run(), llvm::StackSafetyPrinterPass::run(), llvm::AAEvaluator::run(), llvm::PostDominatorTreePrinterPass::run(), llvm::SimpleLoopUnswitchPass::run(), llvm::InlinerPass::run(), llvm::PrintFunctionPass::run(), llvm::BlockFrequencyPrinterPass::run(), llvm::PhiValuesPrinterPass::run(), llvm::AssumptionPrinterPass::run(), llvm::DominanceFrontierPrinterPass::run(), llvm::BranchProbabilityPrinterPass::run(), llvm::WholeProgramDevirtPass::run(), llvm::DominatorTreePrinterPass::run(), llvm::PredicateInfoPrinterPass::run(), llvm::DevirtSCCRepeatedPass< PassT >::run(), llvm::DependenceAnalysisPrinterPass::run(), llvm::MemorySSAPrinterPass::run(), llvm::RegionInfoPrinterPass::run(), llvm::Float2IntPass::runImpl(), llvm::SLPVectorizerPass::runImpl(), llvm::JumpThreadingPass::runImpl(), llvm::runIPSCCP(), llvm::LegacyDivergenceAnalysis::runOnFunction(), llvm::DOTGraphTraitsViewer< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnFunction(), llvm::DOTGraphTraitsPrinter< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnFunction(), llvm::RGPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), llvm::FPPassManager::runOnFunction(), llvm::DetectRoundChange::runOnMachineFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), runSCCP(), llvm::InnerLoopVectorizer::scalarizeInstruction(), scaleWeights(), selectELFSectionForGlobal(), llvm::FastISel::selectInstruction(), selectJumpTableArmEncoding(), llvm::HexagonTargetObjectFile::SelectSectionForGlobal(), llvm::TargetLoweringObjectFileCOFF::SelectSectionForGlobal(), selectWasmSectionForGlobal(), setCoroInfo(), llvm::BranchProbabilityInfo::setEdgeProbability(), llvm::DwarfDebug::shareAcrossDWOCUs(), shouldApply(), shouldInstrumentBlock(), llvm::HexagonTargetObjectFile::shouldPutJumpTableInFunctionSection(), shouldRotateLoopExitingLatch(), ShrinkDemandedConstant(), simplifyAllocaArraySize(), SimplifyBSwap(), SimplifyCondBranchToCondBranch(), SimplifyNVVMIntrinsic(), simplifyOneLoop(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), sinkInstruction(), sinkNotIntoXor(), llvm::sinkRegion(), llvm::BasicBlockPass::skipBasicBlock(), llvm::FunctionPass::skipFunction(), llvm::LoopPass::skipLoop(), llvm::RegionPass::skipRegion(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), SortCallTargets(), speculatePHINodeLoads(), speculateSelectInstLoads(), llvm::SplitBlock(), llvm::SplitBlockPredecessors(), splitCallSite(), llvm::SplitCriticalEdge(), llvm::DISubprogram::splitFlags(), splitGlobal(), llvm::SplitLandingPadPredecessors(), SRAGlobal(), StackMallocSizeClass(), StripSymtab(), suffixed_name_or(), llvm::JumpThreadingPass::ThreadEdge(), llvm::JumpThreadingPass::ThreadGuard(), truncateIVUse(), tryToOptimizeStoreOfMallocToGlobal(), TryToShrinkGlobalToBoolean(), tryToUnrollAndJamLoop(), tryToUnrollLoop(), TurnSwitchRangeIntoICmp(), TypeSizeToSizeIndex(), unpackLoadToAggregate(), unpackStoreToAggregate(), llvm::UnrollAndJamLoop(), llvm::UnrollLoop(), llvm::UnrollRuntimeLoopRemainder(), updateOperand(), UpdatePHINodes(), updatePredecessorProfileMetadata(), llvm::UpgradeIntrinsicCall(), UpgradeIntrinsicFunction1(), llvm::AMDGPULibCalls::useNative(), llvm::ValueHandleBase::ValueIsDeleted(), llvm::ValueHandleBase::ValueIsRAUWd(), Verify(), llvm::verifyModule(), llvm::LoopVersioning::versionLoop(), viewRegionInfo(), llvm::sroa::AllocaSliceRewriter::visit(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitAnd(), llvm::InstCombiner::visitCallInst(), llvm::InstCombiner::visitFPTrunc(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::InstCombiner::visitLoadInst(), llvm::InstCombiner::visitMul(), llvm::InstCombiner::visitOr(), llvm::InstCombiner::visitSDiv(), llvm::InstCombiner::visitSExt(), llvm::InstCombiner::visitShuffleVectorInst(), llvm::InstCombiner::visitSRem(), llvm::InstCombiner::visitSub(), llvm::InstCombiner::visitTrunc(), llvm::InstCombiner::visitXor(), llvm::InstCombiner::visitZExt(), writeCFGToDotFile(), llvm::WriteIndexToFile(), llvm::OptLevelChanger::~OptLevelChanger(), ~Value(), and llvm::ValueSymbolTable::~ValueSymbolTable().
unsigned Value::getNumUses | ( | ) | const |
This method computes the number of uses of this Value.
This is a linear time operation. Use hasOneUse, hasNUses, or hasNUsesOrMore to check for specific values.
Definition at line 160 of file Value.cpp.
References use_begin(), and use_end().
Referenced by llvm::createSeparateConstOffsetFromGEPPass(), llvm::GVNExpression::Expression::dump(), FunctionNumber(), hasOneUse(), hasUsesOutsideLoop(), llvm::log2(), llvm::ValueEnumerator::print(), and relocationViaAlloca().
unsigned Value::getPointerAlignment | ( | const DataLayout & | DL | ) | const |
Returns an alignment of the pointer value.
Returns an alignment which is either specified explicitly, e.g. via align attribute of a function argument, or guaranteed by DataLayout.
Definition at line 646 of file Value.cpp.
References llvm::AMDGPU::HSAMD::Kernel::Arg::Key::Align, assert(), llvm::DataLayout::getABITypeAlignment(), llvm::ConstantInt::getLimitedValue(), llvm::DataLayout::getPreferredAlignment(), llvm::DataLayout::getPrefTypeAlignment(), getType(), llvm::Type::isSized(), and llvm::LLVMContext::MD_align.
Referenced by computeKnownBits(), despeculateCountZeros(), isAligned(), and stripInBoundsOffsets().
uint64_t Value::getPointerDereferenceableBytes | ( | const DataLayout & | DL, |
bool & | CanBeNull | ||
) | const |
Returns the number of bytes known to be dereferenceable for the pointer value.
If CanBeNull is set by this function the pointer can either be null or be dereferenceable up to the returned number of bytes.
Definition at line 593 of file Value.cpp.
References assert(), llvm::ConstantInt::getLimitedValue(), getType(), llvm::DataLayout::getTypeStoreSize(), llvm::Type::isSized(), llvm::LLVMContext::MD_dereferenceable, llvm::LLVMContext::MD_dereferenceable_or_null, and llvm::AttributeList::ReturnIndex.
Referenced by isDereferenceableAndAlignedPointer(), and stripInBoundsOffsets().
|
inline |
Return the raw optional flags value contained in this value.
This should only be used when testing two Values for equivalence.
Definition at line 471 of file Value.h.
References SubclassOptionalData.
Referenced by llvm::FunctionComparator::cmpOperations(), and llvm::ConstantExprKeyType::operator==().
|
inlineprotected |
Definition at line 655 of file Value.h.
Referenced by llvm::Function::dropAllReferences(), llvm::BasicBlock::getLandingPadInst(), llvm::ConstantExpr::getOpcode(), llvm::BasicBlock::hasAddressTaken(), llvm::Function::setPrologueData(), llvm::Function::stealArgumentListFrom(), and llvm::Function::~Function().
|
inline |
All values are typed, get the type of this value.
Definition at line 245 of file Value.h.
References getContext().
Referenced by llvm::GetElementPtrInst::accumulateConstantOffset(), llvm::AliasSetTracker::add(), AddAliasScopeMetadata(), AddAlignmentAssumptions(), addArgumentReturnedAttrs(), addAssumeNonNull(), llvm::SSAUpdater::AddAvailableValue(), addConditions(), llvm::AddOne(), llvm::RecurrenceDescriptor::AddReductionVar(), addStackMapLiveVars(), llvm::IVUsers::AddUsersImpl(), llvm::AMDGPUAAResult::alias(), aliasSameBasePointerGEPs(), alwaysAvailable(), llvm::AMDGPUTargetLowering::analyzeFormalArgumentsCompute(), llvm::VNCoercion::analyzeLoadFromClobberingLoad(), llvm::VNCoercion::analyzeLoadFromClobberingStore(), appendTypeSuffix(), ApplyX86MaskOn1BitsVec(), llvm::SelectInst::areInvalidOperands(), areInverseVectorBitmasks(), areStridedAccessesIndependent(), llvm::AtomicCmpXchgInst::AtomicCmpXchgInst(), atomicSizeSupported(), BatchCommitValueTo(), llvm::BinaryOperator::BinaryOperator(), BitCastConstantVector(), BrPHIToSelect(), buildClonedLoopBlocks(), BuildConstantFromSCEV(), buildFrameType(), buildMultiplyTree(), buildNew(), llvm::InnerLoopVectorizer::buildScalarSteps(), BuildSubAggregate(), llvm::DomTreeUpdater::callbackDeleteBB(), canAlwaysEvaluateInType(), llvm::VNCoercion::canCoerceMustAliasedValueToLoad(), llvm::canConstantFoldCallTo(), canEvaluateSExtd(), canEvaluateShiftedShift(), canEvaluateShuffled(), canEvaluateTruncated(), canEvaluateZExtd(), llvm::FastISel::canFoldAddIntoGEP(), canFoldIVIncExpr(), llvm::slpvectorizer::BoUpSLP::canMapToVector(), canNarrowShiftAmt(), canonicalizeBitCastExtElt(), canonicalizeCmpWithConstant(), canonicalizeICmpBool(), canonicalizeLowbitMask(), canonicalizeSaturatedSubtract(), llvm::canReplaceOperandWithVariable(), CanShareConstantPoolEntry(), canSinkInstructions(), canTransformToMemCmp(), canTrapImpl(), canVectorizeInst(), llvm::Evaluator::castCallResultIfNeeded(), llvm::CastInst::castIsValid(), castRequiresQueuePtr(), llvm::castToCStr(), CC_MipsO32_FP64(), llvm::AArch64TargetLowering::CCAssignFnForReturn(), cheapToScalarize(), checkForNegativeOperand(), checkFunctionMemoryAccess(), llvm::FPMathOperator::classof(), llvm::ExtractValueInst::classof(), llvm::TypeFinder::clear(), clearAssumptionsOfUsers(), llvm::CloneAndPruneIntoFromInst(), cloneConstantExprWithNewAddressSpace(), llvm::AllocaInst::cloneImpl(), llvm::LoadInst::cloneImpl(), llvm::VAArgInst::cloneImpl(), llvm::TruncInst::cloneImpl(), llvm::ZExtInst::cloneImpl(), llvm::SExtInst::cloneImpl(), llvm::FPTruncInst::cloneImpl(), llvm::FPExtInst::cloneImpl(), llvm::UIToFPInst::cloneImpl(), llvm::SIToFPInst::cloneImpl(), llvm::FPToUIInst::cloneImpl(), llvm::FPToSIInst::cloneImpl(), llvm::IntToPtrInst::cloneImpl(), llvm::PtrToIntInst::cloneImpl(), llvm::BitCastInst::cloneImpl(), llvm::AddrSpaceCastInst::cloneImpl(), cloneInstructionWithNewAddressSpace(), CloneLoop(), CloneLoopBlocks(), llvm::FunctionComparator::cmpBasicBlocks(), llvm::FunctionComparator::cmpConstants(), llvm::FunctionComparator::cmpOperations(), collectBitParts(), collectInsertionElements(), llvm::LoopVectorizationCostModel::collectInstsToScalarize(), collectShuffleElements(), collectSingleShuffleElements(), llvm::LoopVectorizationPlanner::collectTriviallyDeadInstructions(), combineLoadToNewType(), combineLoadToOperationType(), combineStoreToNewValue(), combineStoreToValueType(), CombineUAddWithOverflow(), llvm::InstCombiner::commonCastTransforms(), llvm::InstCombiner::commonIDivTransforms(), llvm::InstCombiner::commonShiftTransforms(), CompareValueComplexity(), llvm::ObjectSizeOffsetVisitor::compute(), llvm::ObjectSizeOffsetEvaluator::compute(), computeBytesPoppedByCalleeForSRet(), computeKillSet(), computeKnownBits(), computeKnownBitsFromOperator(), computeLiveOutSeed(), llvm::computeMinimumValueSizes(), llvm::ComputeMultiple(), ComputeNumSignBitsImpl(), llvm::computeOverflowForSignedMul(), llvm::computeOverflowForUnsignedMul(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), computePointerICmp(), ComputePostOrders(), computeRecurrenceType(), computeUnsignedMinMaxValuesFromKnownBits(), llvm::computeUsesVAFloatArgument(), llvm::JumpThreadingPass::ComputeValueKnownInPredecessorsImpl(), computeValueLLTs(), concatenateTwoVectors(), llvm::concatenateVectors(), concatSubVector(), ConnectProlog(), llvm::ConstantAggregate::ConstantAggregate(), llvm::ConstantFoldBinaryInstruction(), llvm::ConstantFoldCastInstruction(), llvm::ConstantFoldCastOperand(), llvm::ConstantFoldCompareInstOperands(), llvm::ConstantFoldCompareInstruction(), llvm::ConstantFoldExtractElementInstruction(), llvm::ConstantFoldGetElementPtr(), llvm::ConstantFoldInsertElementInstruction(), llvm::ConstantFoldInsertValueInstruction(), llvm::ConstantFoldLoadFromConstPtr(), llvm::ConstantFoldLoadThroughBitcast(), llvm::ConstantFoldSelectInstruction(), llvm::ConstantFoldShuffleVectorInstruction(), constantFoldUser(), ConstructSSAForLoadSet(), contains(), llvm::Constant::containsUndefElement(), llvm::ConvertDebugDeclareToDebugValue(), ConvertDoubleToBytes(), ConvertShiftToMul(), ConvertToSInt(), convertValue(), llvm::copyNonnullMetadata(), llvm::copyRangeMetadata(), llvm::SelectionDAGBuilder::CopyToExportRegsIfNeeded(), llvm::SelectionDAGBuilder::CopyValueToVirtualRegister(), llvm::BinaryOperator::Create(), llvm::ConstantExprKeyType::create(), llvm::GetElementPtrInst::Create(), llvm::UnaryOperator::Create(), llvm::CallInst::Create(), llvm::InvokeInst::Create(), CreateAdd(), llvm::IRBuilder< TargetFolder >::CreateAlignedLoad(), llvm::IRBuilder< TargetFolder >::CreateAlignmentAssumption(), llvm::IRBuilder< TargetFolder >::CreateAnd(), createAndInstr(), llvm::IRBuilder< TargetFolder >::CreateAShr(), llvm::IRBuilderBase::CreateAssumption(), llvm::IRBuilderBase::CreateBinaryIntrinsic(), llvm::CastInst::CreateBitOrPointerCast(), llvm::InnerLoopVectorizer::createBitOrPointerCast(), llvm::IRBuilder< TargetFolder >::CreateBitOrPointerCast(), llvm::IRBuilder< TargetFolder >::CreateCall(), createCallInst(), llvm::TargetFolder::CreateCast(), createCast(), llvm::IRBuilder< TargetFolder >::CreateCast(), llvm::createDeadArgHackingPass(), llvm::createEfficiencySanitizerPass(), llvm::IRBuilderBase::CreateElementUnorderedAtomicMemCpy(), llvm::IRBuilderBase::CreateElementUnorderedAtomicMemMove(), llvm::IRBuilderBase::CreateElementUnorderedAtomicMemSet(), llvm::IRBuilder< TargetFolder >::CreateExtractInteger(), llvm::IRBuilderBase::CreateFAddReduce(), createFFSIntrinsic(), llvm::IRBuilderBase::CreateFMulReduce(), llvm::BinaryOperator::CreateFNeg(), llvm::BinaryOperator::CreateFNegFMF(), llvm::TargetFolder::CreateFPCast(), llvm::CastInst::CreateFPCast(), llvm::IRBuilder< TargetFolder >::CreateFPCast(), createFree(), llvm::CallInst::CreateFree(), CreateGCStatepointCallCommon(), CreateGCStatepointInvokeCommon(), createGlobalFwdRef(), llvm::IRBuilderBase::CreateGlobalString(), llvm::createHWAddressSanitizerPass(), llvm::TargetFolder::CreateIntCast(), llvm::IRBuilder< TargetFolder >::CreateIntCast(), llvm::CastInst::CreateIntegerCast(), llvm::IRBuilderBase::CreateInvariantStart(), llvm::IRBuilder< TargetFolder >::CreateInvoke(), llvm::IRBuilder< TargetFolder >::CreateIsNotNull(), llvm::IRBuilder< TargetFolder >::CreateIsNull(), llvm::IRBuilder< TargetFolder >::CreateLaunderInvariantGroup(), llvm::IRBuilderBase::CreateLifetimeEnd(), llvm::IRBuilderBase::CreateLifetimeStart(), llvm::IRBuilder< TargetFolder >::CreateLoad(), llvm::IRBuilder< TargetFolder >::CreateLShr(), createMalloc(), createMaskedBitTest(), llvm::IRBuilderBase::CreateMaskedGather(), llvm::IRBuilderBase::CreateMaskedLoad(), llvm::IRBuilderBase::CreateMaskedScatter(), llvm::IRBuilderBase::CreateMaskedStore(), createMaskInstrs(), llvm::IRBuilderBase::CreateMemCpy(), llvm::createMemCpyLoopKnownSize(), llvm::createMemCpyLoopUnknownSize(), llvm::IRBuilderBase::CreateMemMove(), createMemMoveLoop(), llvm::IRBuilderBase::CreateMemSet(), createMemSetLoop(), CreateMul(), CreateNeg(), llvm::BinaryOperator::CreateNeg(), llvm::BinaryOperator::CreateNot(), llvm::BinaryOperator::CreateNSWNeg(), llvm::BinaryOperator::CreateNUWNeg(), llvm::createObjCARCOptPass(), llvm::IRBuilder< TargetFolder >::CreateOr(), createOrdering(), llvm::InstCombiner::CreateOverflowTuple(), llvm::createPGOFuncNameVar(), llvm::TargetFolder::CreatePointerBitCastOrAddrSpaceCast(), llvm::CastInst::CreatePointerBitCastOrAddrSpaceCast(), llvm::IRBuilder< TargetFolder >::CreatePointerBitCastOrAddrSpaceCast(), llvm::TargetFolder::CreatePointerCast(), llvm::CastInst::CreatePointerCast(), llvm::IRBuilder< TargetFolder >::CreatePointerCast(), createPopcntIntrinsic(), llvm::createPrivateGlobalForString(), createPrivateNonConstGlobalForString(), llvm::IRBuilder< TargetFolder >::CreatePtrDiff(), createRdxShuffleMask(), createReplacementInstr(), llvm::VPRecipeBuilder::createReplicateRegion(), createRetPHINode(), llvm::createScalarizerPass(), llvm::createSeparateConstOffsetFromGEPPass(), llvm::TargetFolder::CreateSExtOrBitCast(), llvm::CastInst::CreateSExtOrBitCast(), llvm::IRBuilder< TargetFolder >::CreateSExtOrBitCast(), llvm::IRBuilder< TargetFolder >::CreateSExtOrTrunc(), llvm::createShadowStackGCLoweringPass(), llvm::IRBuilder< TargetFolder >::CreateShl(), llvm::createSimpleTargetReduction(), llvm::IRBuilder< TargetFolder >::CreateStripInvariantGroup(), llvm::TargetFolder::CreateTruncOrBitCast(), llvm::CastInst::CreateTruncOrBitCast(), llvm::IRBuilder< TargetFolder >::CreateTruncOrBitCast(), llvm::IRBuilderBase::CreateUnaryIntrinsic(), llvm::InnerLoopVectorizer::createVectorizedLoopSkeleton(), llvm::IRBuilder< TargetFolder >::CreateVectorSplat(), CreateWrapper(), llvm::IRBuilder< TargetFolder >::CreateXor(), llvm::TargetFolder::CreateZExtOrBitCast(), llvm::CastInst::CreateZExtOrBitCast(), llvm::IRBuilder< TargetFolder >::CreateZExtOrBitCast(), llvm::IRBuilder< TargetFolder >::CreateZExtOrTrunc(), llvm::DecodePSHUFBMask(), llvm::DecodeVPERMIL2PMask(), llvm::DecodeVPERMILPMask(), llvm::DecodeVPERMV3Mask(), llvm::DecodeVPERMVMask(), llvm::DecodeVPPERMMask(), llvm::decomposeBitTestICmp(), decomposeBitTestICmp(), decomposeSimpleLinearExpr(), llvm::DeleteDeadBlocks(), deleteDeadInstruction(), llvm::DemotePHIToStack(), llvm::DemoteRegToStack(), despeculateCountZeros(), detectShiftUntilZeroIdiom(), determinePointerReadAttrs(), doPromotion(), llvm::GVNExpression::Expression::dump(), eliminateDeadSwitchCases(), eliminateRecursiveTailCall(), llvm::emitBinaryFloatFnCall(), emitDebugValueComment(), llvm::emitFGetCUnlocked(), llvm::emitFGetSUnlocked(), llvm::emitFPutC(), llvm::emitFPutCUnlocked(), llvm::emitFPutS(), llvm::emitFPutSUnlocked(), llvm::emitFReadUnlocked(), llvm::emitFWrite(), llvm::emitFWriteUnlocked(), llvm::EmitGEPOffset(), llvm::AsmPrinter::EmitGlobalConstant(), emitGlobalConstantArray(), emitGlobalConstantFP(), emitGlobalConstantImpl(), emitGlobalConstantStruct(), llvm::HexagonTargetLowering::emitLoadLinked(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::InnerLoopVectorizer::emitMinimumIterationCountCheck(), emitSignedInt64(), llvm::HexagonTargetLowering::emitStoreConditional(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), llvm::emitStrNCpy(), llvm::RISCVTargetLowering::emitTrailingFence(), llvm::PPCTargetLowering::emitTrailingFence(), llvm::InnerLoopVectorizer::emitTransformedIndex(), llvm::emitUnaryFloatFnCall(), emitUnaryFloatFnCallHelper(), EmitX86ScalarSelect(), EmitX86Select(), llvm::ARMAsmPrinter::EmitXXStructor(), EnsureFPIntrinsicsExist(), ensurePromotedGV(), ensureValueAvailableInSuccessor(), EqualityPropUnSafe(), EqualTypeSize(), EraseTerminatorAndDCECond(), llvm::Evaluator::EvaluateBlock(), EvaluateExpression(), evaluateFCmpRelation(), evaluateGEPOffsetExpression(), evaluateICmpRelation(), evaluateInDifferentElementOrder(), EvaluateStoreInto(), llvm::VPBranchOnMaskRecipe::execute(), llvm::VPPredInstPHIRecipe::execute(), llvm::VPlan::execute(), llvm::expandAtomicRMWToCmpXchg(), expandBounds(), llvm::SCEVExpander::expandCodeFor(), llvm::expandDivision(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), llvm::ARMTargetLowering::ExpandInlineAsm(), llvm::X86TargetLowering::ExpandInlineAsm(), llvm::expandRemainder(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), ExtractConstantBytes(), llvm::extractConstantMask(), ExtractImmediate(), extractInteger(), extractVector(), llvm::FenceInst::FenceInst(), FindAllMemoryUses(), findArgumentCopyElisionCandidates(), llvm::FindAvailableLoadedValue(), findBaseDefiningValue(), findBaseDefiningValueOfVector(), findBasePointer(), findInitTrampoline(), llvm::CodeExtractor::findInputsOutputs(), llvm::FindInsertedValue(), findInsertPointAfter(), FindLIVLoopCondition(), findLoadAlignment(), FindLoopCounter(), findMatchingInlineAsmOperand(), llvm::findScalarElement(), findStoreAlignment(), findUnwindDestinations(), FitWeights(), llvm::InnerLoopVectorizer::fixReduction(), fixupFPReturnAndCall(), llvm::InnerLoopVectorizer::fixupIVUsers(), llvm::AMDGPULibCalls::fold(), foldAndOrOfEqualityCmpsWithConstants(), foldAnyOrAllBitsSet(), FoldBitCast(), foldBitCastBitwiseLogic(), foldBitcastExtElt(), foldBitCastSelect(), foldConstantCastPair(), foldConstantInsEltIntoShuffle(), foldCttzCtlz(), foldFDivConstantDivisor(), foldGuardedRotateToFunnelShift(), foldICmpShlOne(), foldICmpWithHighBitMask(), foldICmpWithMinMax(), foldICmpWithTruncSignExtendedVal(), foldIdentityShuffles(), llvm::InstCombiner::FoldItoFPtoI(), foldLogicCastConstant(), foldLogOpOfMaskedICmps(), foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed(), foldOperationIntoPhiValue(), foldOperationIntoSelectOperand(), foldSelectBinOpIdentity(), foldSelectICmpAnd(), foldSelectICmpAndOr(), llvm::InstCombiner::FoldShiftByConstant(), foldShiftedShift(), foldShuffleWithInsert(), foldSignedTruncationCheck(), FoldTwoEntryPHINode(), foldUDivPow2Cst(), foldUDivShl(), foldVectorCmp(), foldVecTruncToExtElt(), foldXorToXor(), forEachUser(), llvm::formLCSSAForInstructions(), llvm::StackSafetyInfo::FunctionInfo::FunctionInfo(), FunctionNumber(), generateSignedDivisionCode(), generateSignedRemainderCode(), generateUnsignedDivisionCode(), genLoopLimit(), llvm::MemoryLocation::get(), llvm::ConstantFP::get(), llvm::ConstantAggregateZero::get(), llvm::ConstantArray::get(), llvm::ConstantVector::get(), llvm::ConstantPointerNull::get(), llvm::ConstantExpr::get(), llvm::UndefValue::get(), getAccessType(), getAddressForMemoryInput(), llvm::SITargetLowering::getAddrModeArguments(), llvm::ConstantExpr::getAddrSpaceCast(), getAdjustedPtr(), llvm::Constant::getAggregateElement(), getAISize(), getAlternateBinop(), GetAnyNonZeroConstInt(), llvm::SystemZTTIImpl::getArithmeticInstrCost(), getArrayElements(), getAsConstantIndexedAddress(), llvm::ConstantExpr::getAsInstruction(), getAtomicOpAlign(), getAtomicOpSize(), getBaseType(), llvm::ConstantExpr::getBinOpAbsorber(), getBinOpsForFactorization(), llvm::ConstantExpr::getBitCast(), getBoundsCheckCond(), getBranchCondString(), llvm::getCallsiteCost(), llvm::CastInst::getCastOpcode(), getChainID(), getCodeAddrSpace(), llvm::ConstantExpr::getCompare(), getCompareCC(), getComparePred(), GetCompareTy(), getConstantFromPool(), GetConstantInt(), llvm::VNCoercion::getConstantLoadValueForLoad(), llvm::SelectionDAG::getConstantPool(), llvm::LazyValueInfo::getConstantRange(), llvm::LazyValueInfo::getConstantRangeOnEdge(), llvm::ExecutionEngine::getConstantValue(), llvm::BasicBlock::getContext(), llvm::Function::getContext(), llvm::IRBuilderBase::getCurrentFunctionReturnType(), llvm::Intrinsic::getDeclaration(), llvm::DemandedBits::getDemandedBits(), llvm::Argument::getDereferenceableBytes(), llvm::Argument::getDereferenceableOrNullBytes(), llvm::BitCastOperator::getDestTy(), getEdgeValueLocal(), llvm::ConstantDataSequential::getElementType(), llvm::ConstantAggregateZero::getElementValue(), llvm::UndefValue::getElementValue(), getEstimate(), llvm::AMDGPUSubtarget::getExplicitKernArgSize(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantExpr::getExtractValue(), llvm::ConstantExpr::getFCmp(), getFCmpValue(), llvm::ConstantExpr::getFNeg(), llvm::ConstantExpr::getFPCast(), llvm::ConstantExpr::getFPExtend(), llvm::ConstantExpr::getFPToSI(), llvm::ConstantExpr::getFPToUI(), llvm::ConstantExpr::getFPTrunc(), getFrameType(), getFromRangeMetadata(), llvm::X86TTIImpl::getGatherScatterOpCost(), llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getGEPCost(), llvm::GetElementPtrInst::getGEPReturnType(), llvm::ConstantExpr::getGetElementPtr(), llvm::GVNExpression::VariableExpression::getHashValue(), llvm::GVNExpression::ConstantExpression::getHashValue(), GetHeapSROAValue(), llvm::ConstantExpr::getICmp(), getIdentityValue(), getImplicitScaleFactor(), llvm::DataLayout::getIndexedOffsetInType(), getInductionVariable(), getInitializer(), llvm::getInlineCost(), llvm::ConstantExpr::getInsertElement(), llvm::ConstantExpr::getInsertValue(), llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getInstructionLatency(), llvm::ConstantExpr::getIntegerCast(), getIntrinsicForMaskedAtomicRMWBinOp32(), llvm::ConstantExpr::getIntToPtr(), llvm::SCEVExpander::getIVIncOperand(), llvm::TargetLoweringObjectFile::getKindForGlobal(), llvm::InvokeInst::getLandingPadInst(), llvm::MemoryDependenceResults::getLoadLoadClobberFullWidthSize(), llvm::VNCoercion::getLoadValueForLoad(), GetLoopInvariantInsertPosition(), llvm::getMallocType(), getMaskedTypeForICmpPair(), getMaxPointerSize(), getMemCmpLoad(), llvm::VNCoercion::getMemInstValueForLoadHelper(), getMemSetPatternValue(), getMetadataTypeOrder(), getMinimumFPType(), llvm::GlobalsAAResult::getModRefBehavior(), llvm::AAResults::getModRefInfo(), getMulHu(), getName(), getNarrowIntrinsic(), getNaturalGEPWithOffset(), getNaturalGEPWithType(), llvm::ConstantExpr::getNeg(), getNewICmpValue(), llvm::DOTGraphTraits< BoUpSLP * >::getNodeAttributes(), llvm::MemoryDependenceResults::getNonLocalPointerDependency(), getNoopInput(), llvm::ConstantExpr::getNot(), getNumBytes(), llvm::ConstantAggregateZero::getNumElements(), llvm::ConstantDataSequential::getNumElements(), llvm::UndefValue::getNumElements(), getOffsetFromIndices(), getOpenCLAlignment(), getOptimizationFlags(), llvm::AArch64TTIImpl::getOrCreateResultFromMemIntrinsic(), llvm::InnerLoopVectorizer::getOrCreateTripCount(), llvm::InnerLoopVectorizer::getOrCreateVectorTripCount(), llvm::InnerLoopVectorizer::getOrCreateVectorValue(), llvm::getOrderedReduction(), llvm::getOrEnforceKnownAlignment(), llvm::Argument::getParamAlignment(), getParameterABIAttributes(), getParentPad(), llvm::AtomicCmpXchgInst::getPointerAddressSpace(), llvm::AtomicRMWInst::getPointerAddressSpace(), llvm::PtrToIntInst::getPointerAddressSpace(), getPointerAlignment(), llvm::GetPointerBaseWithConstantOffset(), llvm::ConstantExpr::getPointerBitCastOrAddrSpaceCast(), llvm::ConstantExpr::getPointerCast(), getPointerDereferenceableBytes(), GetPointerOperand(), getPointerOperands(), llvm::LoadInst::getPointerOperandType(), llvm::StoreInst::getPointerOperandType(), llvm::GEPOperator::getPointerOperandType(), llvm::PtrToIntOperator::getPointerOperandType(), llvm::GetElementPtrInst::getPointerOperandType(), getPow(), llvm::LazyValueInfo::getPredicateAt(), llvm::getPtrStride(), llvm::ConstantExpr::getPtrToInt(), getRangeForAffineARHelper(), getReducedType(), getReductionIntrinsic(), llvm::FastISel::getRegForGEPIndex(), llvm::FastISel::getRegForValue(), getRelevantOperands(), getRetComponentType(), GetRMWLibcall(), llvm::getSafeVectorConstantForBinop(), getScalarIntrinsicDeclaration(), getScalarizationOverhead(), llvm::ScalarEvolution::getSCEV(), llvm::ConstantExpr::getSelect(), getSelectFoldableConstant(), llvm::ConstantAggregateZero::getSequentialElement(), llvm::UndefValue::getSequentialElement(), llvm::ConstantExpr::getSExt(), llvm::ConstantExpr::getSExtOrBitCast(), llvm::ShuffleVectorInst::getShuffleMask(), llvm::getShuffleReduction(), llvm::ConstantExpr::getShuffleVector(), getSignature(), llvm::ARMTargetLowering::getSingleConstraintMatchWeight(), llvm::SystemZTargetLowering::getSingleConstraintMatchWeight(), llvm::PPCTargetLowering::getSingleConstraintMatchWeight(), llvm::X86TargetLowering::getSingleConstraintMatchWeight(), llvm::TargetLowering::getSingleConstraintMatchWeight(), llvm::ConstantExpr::getSIToFP(), llvm::MipsCCState::getSpecialCallingConvForCallee(), llvm::ConstantVector::getSplat(), llvm::ConstantDataVector::getSplat(), llvm::getSplatValue(), llvm::Constant::getSplatValue(), getSqrtCall(), llvm::AddrSpaceCastInst::getSrcAddressSpace(), llvm::BitCastOperator::getSrcTy(), llvm::SelectionDAG::getSrcValue(), llvm::InnerLoopVectorizer::getStepVector(), llvm::getStrideFromPointer(), llvm::GetStringLength(), llvm::ConstantAggregateZero::getStructElement(), llvm::UndefValue::getStructElement(), getSuccPad(), getTargetConstantBitsFromNode(), llvm::RISCVTargetLowering::getTgtMemIntrinsic(), llvm::HexagonTargetLowering::getTgtMemIntrinsic(), llvm::SITargetLowering::getTgtMemIntrinsic(), llvm::AArch64TargetLowering::getTgtMemIntrinsic(), llvm::NVPTXTargetLowering::getTgtMemIntrinsic(), llvm::ARMTargetLowering::getTgtMemIntrinsic(), llvm::X86TargetLowering::getTgtMemIntrinsic(), llvm::DenseMapInfo< SimpleValue >::getTombstoneKey(), getTrueOrFalseValue(), llvm::ConstantExpr::getTrunc(), llvm::ConstantExpr::getTruncOrBitCast(), llvm::InlineAsm::getType(), llvm::AllocaInst::getType(), llvm::ConstantInt::getType(), llvm::GlobalValue::getType(), llvm::ValueAsMetadata::getType(), llvm::ConstantArray::getType(), llvm::ConstantStruct::getType(), llvm::ConstantVector::getType(), llvm::ConstantPointerNull::getType(), llvm::ConstantDataSequential::getType(), llvm::ConstantDataArray::getType(), llvm::ConstantDataVector::getType(), llvm::InsertElementInst::getType(), llvm::ShuffleVectorInst::getType(), llvm::ConstantStruct::getTypeForElements(), getTypePartition(), llvm::ConstantExpr::getUIToFP(), getUnderlyingArgReg(), llvm::GetUnderlyingObject(), getUnderlyingObjectFromInt(), llvm::getUnderlyingObjectsForCodeGen(), getUniformBase(), llvm::getUniqueCastUse(), llvm::PPCTTIImpl::getUserCost(), llvm::X86TTIImpl::getUserCost(), llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getUserCost(), llvm::SelectionDAGBuilder::getValue(), getValueFromICmpCondition(), llvm::SelectionDAGBuilder::getValueImpl(), getVectorCallCost(), llvm::slpvectorizer::BoUpSLP::getVectorElementSize(), getVectorIntrinsicCost(), llvm::ConstantExpr::getWithOperandReplaced(), llvm::ConstantExpr::getWithOperands(), getX86MaskVec(), llvm::ConstantExpr::getZExt(), llvm::ConstantExpr::getZExtOrBitCast(), llvm::GlobalVariable::GlobalVariable(), GlobalWasGeneratedByCompiler(), GreaterThanTypeSize(), HandleByValArgument(), HandleByValArgumentInit(), llvm::ValueAsMetadata::handleDeletion(), handleMemIntrinsicPtrUse(), llvm::Constant::handleOperandChange(), llvm::ValueAsMetadata::handleRAUW(), hasAnyNonFlatUseOfReg(), llvm::Argument::hasByValAttr(), llvm::Argument::hasByValOrInAllocaAttr(), llvm::PHINode::hasConstantOrUndefValue(), llvm::Constant::hasExactInverseFP(), llvm::Argument::hasInAllocaAttr(), llvm::Argument::hasNestAttr(), llvm::Argument::hasNoAliasAttr(), llvm::Argument::hasNoCaptureAttr(), llvm::Argument::hasNonNullAttr(), hasOnlyOneNonZeroIndex(), hasOnlySelectUsers(), hasPositiveOperands(), hasProfileData(), hasSameArgumentList(), hasSameExtUse(), hasStoreUsersOnly(), llvm::Argument::hasStructRetAttr(), hasUndefContents(), hasValueBeenRAUWed(), hasZeroSignBit(), llvm::haveNoCommonBitsSet(), llvm::HexagonEvaluator::HexagonEvaluator(), llvm::SCEVExpander::hoistIVInc(), HoistThenElseCodeToIf(), llvm::CompositeType::indexValid(), INITIALIZE_PASS(), llvm::MIRParserImpl::initializeConstantPool(), llvm::ExecutionEngine::InitializeMemory(), llvm::FunctionLoweringInfo::InitializeRegForValue(), llvm::InlineFunction(), llvm::RuntimePointerChecking::insert(), insertInteger(), insertParsePoints(), insertSinCosCall(), insertUniqueBackedgeBlock(), insertVector(), llvm::cflaa::instantiateInterfaceValue(), instrumentMaskedLoadOrStore(), llvm::MemoryDependenceResults::invalidateCachedPointerInfo(), inversePermutation(), isAligned(), isAlwaysFoldable(), isAtomic(), isBroadcastShuffle(), llvm::isBytewiseValue(), isCallPromotable(), llvm::LandingPadInst::isCatch(), isCompatibleIVType(), isCompatibleReplacement(), llvm::ShuffleVectorInst::isConcat(), llvm::isConsecutiveAccess(), llvm::LanaiTargetObjectFile::isConstantInSmallSection(), llvm::MipsTargetObjectFile::IsConstantInSmallSection(), isConstantIntVector(), isContiguous(), llvm::isDereferenceableAndAlignedPointer(), isDivZero(), llvm::TargetLoweringBase::isExtFree(), llvm::TargetLoweringBase::isExtLoad(), llvm::ShuffleVectorInst::isExtractSubvectorMask(), llvm::LandingPadInst::isFilter(), llvm::Constant::isFiniteNonZeroFP(), llvm::SystemZTTIImpl::isFoldableLoad(), llvm::InductionDescriptor::isFPInductionPHI(), llvm::IsFreeToInvert(), isFuncOrArgAttr(), isGEPFoldable(), isGEPKnownNonNull(), isHighCostExpansion(), llvm::Instruction::isIdenticalToWhenDefined(), llvm::ShuffleVectorInst::isIdentityMask(), isIgnorableInst(), isImageOrSamplerVal(), llvm::isImpliedByDomCondition(), llvm::isImpliedCondition(), llvm::CmpInst::isImpliedFalseByMatchingCmp(), IsIncrementNUW(), isIndirectBrTarget(), llvm::InductionDescriptor::isInductionPHI(), llvm::CastInst::isIntegerCast(), isIntegerLoopHeaderPHI(), isInterestingPointer(), isIntExtFree(), llvm::isKnownNeverNaN(), isKnownNonEqual(), isKnownNonNullFromDominatingCondition(), isKnownNonZero(), isKnownToBeAPowerOfTwo(), isKnownTypeIdMember(), llvm::isLegalToPromote(), isLoadConditional(), isLoadInvariantInLoop(), llvm::CastInst::isLosslessCast(), llvm::isMathLibCallNoop(), isMinMaxWithLoads(), isMulPowOf2(), llvm::Constant::isNaN(), llvm::Constant::isNegativeZeroValue(), IsNonLocalValue(), llvm::CastInst::isNoopCast(), llvm::Constant::isNormalFP(), llvm::Constant::isNotMinSignedValue(), isNoWrap(), IsNullTerminatedString(), isObjectDereferencedInBlock(), isObjectSize(), isOnlyReachableViaThisEdge(), isPointerOperand(), isPointerValueDeadOnEntryToFunction(), llvm::objcarc::IsPotentialRetainableObjPtr(), isProfitableChain(), llvm::AArch64TargetLowering::isProfitableToHoist(), isPromotedInstructionLegal(), llvm::RecurrenceDescriptor::isRecurrenceInstr(), isReInterleaveMask(), isRepeatedByteSequence(), isReportingError(), llvm::ShuffleVectorInst::isReverseMask(), isSafeAndProfitableToSinkLoad(), isSafeToEliminateVarargsCast(), llvm::isSafeToLoadUnconditionally(), llvm::Instruction::isSameOperationAs(), isSelect01(), llvm::ShuffleVectorInst::isSelectMask(), isSExtLoad(), isShuffleEquivalentToSelect(), isShuffleExtractingFromLHS(), isSimpleEnoughPointerToCommit(), isSimpleEnoughValueToCommitHelper(), isSimpleIVUser(), llvm::ShuffleVectorInst::isSingleSourceMask(), isSource(), isStrideMul(), llvm::ConstantDataSequential::isString(), isSupportedType(), llvm::ShuffleVectorInst::isTransposeMask(), isTruePredicate(), isUndefShift(), llvm::LoopVectorizationLegality::isUniform(), llvm::LoopAccessInfo::isUniform(), llvm::DemandedBits::isUseDead(), llvm::ExtractElementInst::isValidOperands(), llvm::InsertElementInst::isValidOperands(), llvm::ShuffleVectorInst::isValidOperands(), isVectorReductionOp(), isZero(), llvm::ShuffleVectorInst::isZeroEltSplatMask(), llvm::AArch64TargetLowering::isZExtFree(), LessOrEqualTypeSize(), LessThanTypeSize(), likeBitCastFromVector(), LinearizeExprTree(), LLVMBuildCall(), LLVMBuildGEP(), LLVMBuildInBoundsGEP(), LLVMBuildInvoke(), LLVMBuildLoad(), LLVMBuildStructGEP(), LLVMConstGEP(), LLVMConstInBoundsGEP(), LLVMConstRealGetDouble(), llvm::LoadAndStorePromoter::LoadAndStorePromoter(), llvm::LoadInst::LoadInst(), llvm::log2(), lookThroughCast(), llvm::WebAssemblyMCInstLower::Lower(), llvm::SelectionDAGBuilder::LowerAsSTATEPOINT(), LowerAtomicCmpXchgInst(), LowerBSWAP(), llvm::CallLowering::lowerCall(), llvm::FastISel::lowerCall(), llvm::SelectionDAGBuilder::LowerCallSiteWithDeoptBundle(), llvm::FastISel::lowerCallTo(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::AsmPrinter::lowerConstant(), LowerCTLZ(), LowerCTPOP(), llvm::X86CallLowering::lowerFormalArguments(), llvm::AMDGPUCallLowering::lowerFormalArguments(), llvm::ARMCallLowering::lowerFormalArguments(), llvm::AArch64CallLowering::lowerFormalArguments(), llvm::MipsCallLowering::lowerFormalArguments(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::lowerInterleavedStore(), llvm::IntrinsicLowering::LowerIntrinsicCall(), LowerNegateToMultiply(), llvm::lowerObjectSizeCall(), llvm::X86CallLowering::lowerReturn(), llvm::AArch64CallLowering::lowerReturn(), llvm::MipsCallLowering::lowerReturn(), LowerRotate(), llvm::SelectionDAGBuilder::LowerStatepoint(), lowerStatepointMetaArgs(), llvm::IntrinsicLowering::LowerToByteSwap(), llvm::MachineMemOperand::MachineMemOperand(), llvm::MachinePointerInfo::MachinePointerInfo(), makeBitReverse(), makeStatepointExplicitImpl(), mapBinOpcode(), llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::MarkBlockExecutable(), MarkBlocksLiveIn(), matchesOr(), matchPairwiseReductionAtLevel(), matchRotate(), llvm::matchSelectPattern(), matchVectorSplittingReduction(), llvm::gvn::AvailableValue::MaterializeAdjustedValue(), llvm::gvn::AvailableValueInBlock::MaterializeAdjustedValue(), maybePrintCallAddrSpace(), maybePrintComdat(), maybeSetDSOLocal(), mayLoopAccessLocation(), mayUsePostIncMode(), llvm::LoopVectorizationCostModel::memoryInstructionCanBeWidened(), MergeAliasResults(), llvm::MergeBasicBlockIntoOnlyPred(), mergeConditionalStoreToAddress(), mergeEmptyReturnBlocks(), MightBeFoldableInst(), llvm::TargetTransformInfoImplBase::minRequiredElementSize(), moveUp(), MulWillOverflow(), llvm::InstDeleterIRStrategy::mutate(), narrowUDivURem(), narrowVectorSelect(), needsFPFromSig(), needsRuntimeRegistrationOfSectionRange(), NegateValue(), llvm::RandomIRBuilder::newSink(), okayForPHIOfOps(), operandWithNewAddressSpaceOrCreateUndef(), operator new(), operator<<(), OptimizeAwayTrappingUsesOfValue(), optimizeBinaryDoubleFP(), optimizeDivRem(), optimizeDoubleFP(), OptimizeEmptyGlobalCXXDtors(), OptimizeExtractBits(), OptimizeGlobalAddressOfMalloc(), optimizeIntegerToVectorInsertions(), OptimizeNoopCopyExpression(), optimizeOnceStoredGlobal(), optimizeSQRT(), optimizeVectorResize(), llvm::InnerLoopVectorizer::packScalarIntoVectorValue(), llvm::TargetLowering::ParseConstraints(), patchAndReplaceAllUsesWith(), false::LibCallsShrinkWrap::perform(), performAtomicOp(), PerformHeapAllocSRoA(), performMaskedAtomicOp(), llvm::PHITransAddr::PHITranslateWithInsertion(), PhiTypeSorterFunc(), llvm::PointerMayBeCaptured(), llvm::AMDGPUAAResult::pointsToConstantMemory(), llvm::CallBase::populateBundleOperandInfos(), llvm::SelectionDAGBuilder::populateCallLoweringInfo(), llvm::ARMConstantPoolValue::print(), llvm::ScalarEvolution::print(), printAsOperandImpl(), processAdd(), processAShr(), llvm::JumpThreadingPass::ProcessBranchOnXOR(), processInternalGlobal(), processOverflowIntrinsic(), processPHI(), processSDiv(), processSelect(), processSRem(), processUDivOrURem(), processUGT_ADDCST_ADD(), processUMulZExtIdiom(), llvm::promoteCall(), promotedOpIsNUW(), llvm::promoteLoopAccessesToScalars(), promoteSingleBlockAlloca(), PropagateConstantsIntoArguments(), propagateMetadata(), propagateNaN(), readWideAPInt(), llvm::recognizeBSwapOrBitReverseIdiom(), ReduceSwitchRange(), llvm::DemandedBitsWrapperPass::releaseMemory(), llvm::removeAllNonTerminatorAndEHPadInstructions(), removeBitcastsFromLoadStoreOnMinMax(), llvm::SwitchInst::removeCase(), RemoveDeadConstant(), removeGlobalCtors(), llvm::CatchSwitchInst::removeHandler(), RemoveInstInputs(), llvm::MemoryDependenceResults::removeInstruction(), removeLifetimeIntrinsicUsers(), llvm::replaceAllDbgUsesWith(), replaceAllUsesOfWithIn(), llvm::SCEVExpander::replaceCongruentIVs(), llvm::replaceDbgUsesWithUndef(), replaceDominatedUsesWith(), llvm::InstCombiner::replacedSelectWithOperand(), ReplaceFoldableUses(), ReplaceFPIntrinsicWithCall(), llvm::InstCombiner::replaceInstUsesWith(), llvm::replaceNonLocalUsesWith(), replaceShuffleOfInsert(), llvm::replaceSymbolicStrideSCEV(), replaceUnaryCall(), ReplaceUsesOfWith(), replaceUsesOutsideBlock(), replaceWithConstant(), reportLoadElim(), reportMayClobberedLoad(), llvm::Record::resolveReferences(), RetagMask(), llvm::returnTypeIsEligibleForTailCall(), reuseTableCompare(), llvm::InnerLoopVectorizer::reverseVector(), RewriteHeapSROALoadUser(), rewritePHIs(), rewriteSingleStoreAlloca(), RewriteUsesOfClonedInstructions(), llvm::LoopDataPrefetchPass::run(), llvm::LoadAndStorePromoter::run(), llvm::WholeProgramDevirtPass::run(), llvm::InstCombiner::run(), llvm::runIPSCCP(), llvm::IRTranslator::runOnMachineFunction(), runPartiallyInlineLibCalls(), runSCCP(), scalarConstantToHexString(), llvm::InnerLoopVectorizer::scalarizeInstruction(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), llvm::FastISel::selectBinaryOp(), llvm::FastISel::selectBitCast(), llvm::FastISel::selectCast(), llvm::FastISel::selectExtractValue(), llvm::FastISel::selectFNeg(), llvm::FastISel::selectIntrinsicCall(), selectJumpTableArmEncoding(), llvm::FastISel::selectOperator(), llvm::FastISel::selectPatchpoint(), llvm::FastISel::selectStackmap(), llvm::GlobalAlias::setAliasee(), llvm::LoadInst::setAlignment(), llvm::StoreInst::setAlignment(), llvm::CallBase::setCalledFunction(), llvm::LoopVectorizationCostModel::setCostBasedWideningDecision(), llvm::MemIntrinsicBase< AnyMemIntrinsic >::setDest(), llvm::AtomicMemIntrinsic::setElementSizeInBytes(), llvm::PHINode::setIncomingValue(), llvm::GlobalVariable::setInitializer(), llvm::MemIntrinsicBase< AnyMemIntrinsic >::setLength(), llvm::MemTransferBase< AnyMemIntrinsic >::setSource(), llvm::MemSetBase< AnyMemIntrinsic >::setValue(), shorter_filter(), llvm::AArch64TTIImpl::shouldConsiderAddressTypePromotion(), shouldConvertImpl(), llvm::HexagonTargetLowering::shouldExpandAtomicCmpXchgInIR(), llvm::HexagonTargetLowering::shouldExpandAtomicLoadInIR(), llvm::AArch64TargetLowering::shouldExpandAtomicLoadInIR(), llvm::ARMTargetLowering::shouldExpandAtomicLoadInIR(), llvm::SparcTargetLowering::shouldExpandAtomicRMWInIR(), llvm::AArch64TargetLowering::shouldExpandAtomicRMWInIR(), llvm::ARMTargetLowering::shouldExpandAtomicRMWInIR(), llvm::HexagonTargetLowering::shouldExpandAtomicStoreInIR(), llvm::AArch64TargetLowering::shouldExpandAtomicStoreInIR(), llvm::ARMTargetLowering::shouldExpandAtomicStoreInIR(), shouldFixMainFunction(), shouldInstrumentBlock(), shouldInstrumentReadWriteFromAddress(), shouldKeepFDivF32(), shouldMergeGEPs(), shouldPromote(), shouldReorderOperands(), ShrinkDemandedConstant(), shrinkFPConstant(), shrinkInsertElt(), shrinkSplatShuffle(), SimplifyAddInst(), simplifyAllocaArraySize(), SimplifyAndInst(), simplifyAndOfICmpsWithAdd(), simplifyAndOfICmpsWithSameOperands(), simplifyAndOrOfCmps(), simplifyAndOrOfFCmps(), simplifyAndOrOfICmpsWithConstants(), SimplifyAShrInst(), simplifyAssocCastAssoc(), simplifyBinaryIntrinsic(), SimplifyBranchOnICmpChain(), SimplifyBSwap(), SimplifyCall(), SimplifyCastInst(), simplifyDiv(), simplifyDivRem(), llvm::InstCombiner::simplifyDivRemOfSelectWithZeroOp(), SimplifyExtractElementInst(), SimplifyFAddInst(), SimplifyFDivInst(), SimplifyFMulInst(), simplifyFPBinop(), SimplifyFRemInst(), SimplifyFSubInst(), SimplifyGEPInst(), SimplifyICmpInst(), simplifyICmpOfBools(), simplifyICmpWithBinOp(), llvm::SimplifyInsertElementInst(), SimplifyInsertValueInst(), llvm::SimplifyInstruction(), simplifyInvariantGroupIntrinsic(), SimplifyLShrInst(), SimplifyMulInst(), simplifyNeonTbl1(), simplifyNeonVld1(), SimplifyNVVMIntrinsic(), SimplifyOrInst(), simplifyOrOfICmpsWithAdd(), simplifyOrOfICmpsWithSameOperands(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), SimplifyPHINode(), simplifyRelocatesOffABase(), simplifyRem(), SimplifyRightShift(), SimplifySDivInst(), SimplifyShift(), SimplifyShlInst(), SimplifyShuffleVectorInst(), SimplifySRemInst(), SimplifySubInst(), simplifyUnsignedRangeCheck(), simplifyX86insertps(), simplifyX86MaskedLoad(), simplifyX86MaskedStore(), simplifyX86movmsk(), simplifyX86pack(), simplifyX86pshufb(), simplifyX86round(), simplifyX86varShift(), simplifyX86vpcom(), simplifyX86vpermilvar(), simplifyX86vpermv(), SimplifyXorInst(), sink(), SinkCast(), SinkShiftAndTruncate(), AllocaSlices::SliceBuilder::SliceBuilder(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), llvm::sortPtrAccesses(), speculatePHINodeLoads(), splitCallSite(), llvm::SplitLandingPadPredecessors(), splitMergedValStore(), StackMallocSizeClass(), stripAndAccumulateInBoundsConstantOffsets(), stripAndComputeConstantOffsets(), stripNonValidDataFromBody(), llvm::SubOne(), supportedAddressingMode(), swapMayExposeCSEOpportunities(), switchToSelect(), ThreadCmpOverSelect(), transformToIndexedCompare(), truncateIVUse(), llvm::InnerLoopVectorizer::truncateToMinimalBitwidths(), tryPromoteAllocaToVector(), tryToElideArgumentCopy(), tryToOptimizeStoreOfMallocToGlobal(), tryToReplaceWithConstant(), tryToShorten(), TryToShrinkGlobalToBoolean(), llvm::JumpThreadingPass::TryToUnfoldSelectInCurrBB(), tryToVectorizeHorReductionOrInstOperands(), tryUnmergingGEPsAcrossIndirectBr(), TurnSwitchRangeIntoICmp(), TypeSizeToSizeIndex(), UnpackFromArgumentSlot(), unpackLoadToAggregate(), unpackStoreToAggregate(), llvm::UnreachableInst::UnreachableInst(), llvm::UnrollRuntimeLoopRemainder(), updateOperand(), UpdatePHINodes(), llvm::SelectionDAGBuilder::UpdateSplitBlock(), upgradeAbs(), upgradeAVX512MaskToSelect(), llvm::UpgradeBitCastExpr(), llvm::UpgradeBitCastInst(), UpgradeIntrinsicFunction1(), upgradeMaskedCompare(), UpgradeMaskedLoad(), UpgradeMaskedStore(), UpgradeMaskToInt(), upgradePMULDQ(), UpgradeX86AddSubSatIntrinsics(), UpgradeX86ALIGNIntrinsics(), upgradeX86ConcatShift(), UpgradeX86PSLLDQIntrinsics(), UpgradeX86PSRLDQIntrinsics(), upgradeX86Rotate(), UpgradeX86VPERMT2Intrinsics(), llvm::AMDGPULibCalls::useNative(), valueHasFloatPrecision(), llvm::ValueHandleBase::ValueIsDeleted(), llvm::ValueHandleBase::ValueIsRAUWd(), llvm::InnerLoopVectorizer::vectorizeInterleaveGroup(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), versionCallSite(), llvm::sroa::AllocaSliceRewriter::visit(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitAddrSpaceCast(), llvm::Interpreter::visitAllocaInst(), llvm::InstCombiner::visitAllocaInst(), llvm::InstCombiner::visitAllocSite(), llvm::InstCombiner::visitAnd(), llvm::ObjectSizeOffsetVisitor::visitArgument(), llvm::Interpreter::visitAShr(), llvm::InstCombiner::visitAShr(), llvm::Interpreter::visitBinaryOperator(), llvm::InstCombiner::visitBitCast(), llvm::Interpreter::visitBitCastInst(), llvm::SelectionDAGBuilder::visitBitTestCase(), llvm::InstCombiner::visitBranchInst(), llvm::InstCombiner::visitCallInst(), llvm::Interpreter::visitExtractElementInst(), llvm::InstCombiner::visitExtractElementInst(), llvm::Interpreter::visitExtractValueInst(), llvm::InstCombiner::visitFAdd(), llvm::Interpreter::visitFCmpInst(), llvm::InstCombiner::visitFCmpInst(), llvm::InstCombiner::visitFDiv(), llvm::Interpreter::visitFPExtInst(), llvm::Interpreter::visitFPToSIInst(), llvm::Interpreter::visitFPToUIInst(), llvm::InstCombiner::visitFPTrunc(), llvm::Interpreter::visitFPTruncInst(), llvm::InstCombiner::visitFSub(), llvm::InstCombiner::visitGetElementPtrInst(), VisitGlobalVariableForEmission(), llvm::Interpreter::visitICmpInst(), llvm::InstCombiner::visitICmpInst(), llvm::InstCombiner::visitInsertElementInst(), llvm::Interpreter::visitInsertValueInst(), llvm::InstCombiner::visitIntToPtr(), llvm::Interpreter::visitIntToPtrInst(), visitIVCast(), llvm::InstCombiner::visitLandingPadInst(), llvm::Interpreter::visitLoadInst(), llvm::InstCombiner::visitLoadInst(), llvm::Interpreter::visitLShr(), llvm::InstCombiner::visitLShr(), llvm::InstCombiner::visitMul(), llvm::InstCombiner::visitOr(), llvm::InstCombiner::visitPHINode(), llvm::PtrUseVisitor< SliceBuilder >::visitPtr(), llvm::InstCombiner::visitPtrToInt(), llvm::Interpreter::visitPtrToIntInst(), llvm::Interpreter::visitReturnInst(), llvm::InstCombiner::visitReturnInst(), llvm::InstCombiner::visitSDiv(), llvm::Interpreter::visitSelectInst(), llvm::InstCombiner::visitSExt(), llvm::Interpreter::visitSExtInst(), llvm::Interpreter::visitShl(), llvm::InstCombiner::visitShl(), llvm::InstCombiner::visitShuffleVectorInst(), llvm::Interpreter::visitSIToFPInst(), llvm::InstCombiner::visitSRem(), llvm::Interpreter::visitStoreInst(), llvm::InstCombiner::visitStoreInst(), llvm::InstCombiner::visitSub(), llvm::Interpreter::visitSwitchInst(), llvm::InstCombiner::visitTrunc(), llvm::Interpreter::visitTruncInst(), llvm::InstCombiner::visitUDiv(), llvm::Interpreter::visitUIToFPInst(), llvm::InstCombiner::visitURem(), llvm::Interpreter::visitVAArgInst(), llvm::InstCombiner::visitXor(), llvm::InstCombiner::visitZExt(), llvm::Interpreter::visitZExtInst(), llvm::InnerLoopVectorizer::widenIntOrFpInduction(), llvm::InnerLoopVectorizer::widenPHIInstruction(), wrapConstantAsMetadata(), WriteAsOperandInternal(), WriteConstantInternal(), X86ChooseCmpImmediateOpcode(), llvm::reassociate::XorOpnd::XorOpnd(), and llvm::BasicBlock::~BasicBlock().
|
inline |
Return an ID for the concrete type of this object.
This is used to implement the classof checks. This should not be used for any other purpose, as the values may change as LLVM evolves. Also, note that for instructions, the Instruction's opcode is added to InstructionVal. So this means three things:
the ValueTy enum.
Definition at line 464 of file Value.h.
Referenced by alwaysAvailable(), llvm::GlobalIFunc::classof(), llvm::ConstantData::classof(), llvm::GlobalIndirectSymbol::classof(), llvm::GlobalAlias::classof(), llvm::Argument::classof(), llvm::Constant::classof(), llvm::MemoryAccess::classof(), llvm::GlobalObject::classof(), llvm::InlineAsm::classof(), llvm::MetadataAsValue::classof(), llvm::GlobalVariable::classof(), llvm::ConstantInt::classof(), llvm::MemoryUseOrDef::classof(), llvm::MemoryUse::classof(), llvm::ConstantFP::classof(), llvm::BasicBlock::classof(), llvm::ConstantAggregateZero::classof(), llvm::MemoryDef::classof(), llvm::ConstantAggregate::classof(), llvm::ConstantArray::classof(), llvm::ConstantStruct::classof(), llvm::ConstantVector::classof(), llvm::ConstantPointerNull::classof(), llvm::GlobalValue::classof(), llvm::MemoryPhi::classof(), llvm::Instruction::classof(), llvm::ConstantDataSequential::classof(), llvm::Function::classof(), llvm::ConstantDataArray::classof(), llvm::ConstantDataVector::classof(), llvm::ConstantTokenNone::classof(), llvm::BlockAddress::classof(), llvm::ConstantExpr::classof(), llvm::UndefValue::classof(), llvm::FunctionComparator::cmpConstants(), CompareValueComplexity(), deleteValue(), llvm::Constant::destroyConstant(), llvm::isa_impl< Constant, Value >::doit(), llvm::isa_impl< ConstantData, Value >::doit(), llvm::isa_impl< ConstantAggregate, Value >::doit(), llvm::isa_impl< Argument, Value >::doit(), llvm::isa_impl< InlineAsm, Value >::doit(), llvm::isa_impl< Instruction, Value >::doit(), llvm::isa_impl< BasicBlock, Value >::doit(), llvm::isa_impl< Function, Value >::doit(), llvm::isa_impl< GlobalVariable, Value >::doit(), llvm::isa_impl< GlobalAlias, Value >::doit(), llvm::isa_impl< GlobalIFunc, Value >::doit(), llvm::GlobalValue::eraseFromParent(), llvm::Constant::handleOperandChange(), and llvm::GlobalValue::removeFromParent().
ValueName * Value::getValueName | ( | ) | const |
Definition at line 186 of file Value.cpp.
References assert(), getContext(), HasName, I, llvm::LLVMContext::pImpl, and llvm::LLVMContextImpl::ValueNames.
Referenced by deleteValue(), llvm::TargetIntrinsicInfo::getIntrinsicID(), getName(), hasName(), takeName(), and llvm::ValueSymbolTable::~ValueSymbolTable().
|
inline |
Definition at line 251 of file Value.h.
References assertModuleIsMaterializedImpl(), getName(), getValueName(), HasName, Name, llvm::No, replaceAllUsesWith(), replaceNonMetadataUsesWith(), replaceUsesOutsideBlock(), setName(), setValueName(), takeName(), and llvm::Yes.
Referenced by AddAliasScopeMetadata(), asmClobbersCTR(), llvm::canConstantFoldCallTo(), llvm::CloneBasicBlock(), llvm::CloneFunction(), computeFunctionSummary(), llvm::ConstantFoldCall(), llvm::NVPTXAsmPrinter::doFinalization(), llvm::FunctionImportGlobalProcessing::doImportAsDefinition(), llvm::DomTreeUpdater::dump(), externalize(), llvm::foldBlockIntoPredecessor(), forEachUser(), FunctionNumber(), llvm::ModuleSummaryIndex::getGlobalValueSummary(), llvm::ExecutionEngine::getMangledName(), getName(), llvm::Mangler::getNameWithPrefix(), llvm::GetOrCreateFunctionComdat(), getParentPad(), GetPointerOperand(), llvm::getSamplerName(), llvm::getSurfaceName(), llvm::getTextureName(), initSlots2BasicBlocks(), insertIfNamed(), instrumentMaskedLoadOrStore(), llvm::TargetTransformInfoImplBase::isLoweredToCall(), makeStatepointExplicitImpl(), llvm::maybeMarkSanitizerLibraryCallNoBuiltin(), maybePrintCallAddrSpace(), maybePrintComdat(), llvm::MergeBlockIntoPredecessor(), false::operator<<(), OptimizeFunctions(), OptimizeGlobalAliases(), OptimizeGlobalVars(), llvm::LinkDiagnosticInfo::print(), llvm::ValueEnumerator::print(), llvm::AliasSet::print(), llvm::MemoryPhi::print(), llvm::MachineBasicBlock::print(), printIRBlockReference(), printIRValueReference(), printWithoutType(), llvm::ReplaceInstWithValue(), RetagMask(), llvm::FastISel::selectInstruction(), StackMallocSizeClass(), suffixed_name_or(), takeName(), llvm::AMDGPULibCalls::useNative(), and llvm::ValueSymbolTable::~ValueSymbolTable().
Return true if this Value has exactly N users.
Definition at line 131 of file Value.cpp.
References llvm::hasNItems(), use_begin(), and use_end().
Referenced by AddAlignmentAssumptions(), llvm::slpvectorizer::BoUpSLP::canMapToVector(), canonicalizeSaturatedSubtract(), createRdxShuffleMask(), hasOneUse(), mergeConditionalStores(), SpeculativelyExecuteBB(), and llvm::InstCombiner::visitXor().
Return true if this value has N users or more.
This is logically equivalent to getNumUses() >= N.
Definition at line 135 of file Value.cpp.
References llvm::hasNItemsOrMore(), use_begin(), and use_end().
Referenced by canonicalizeSaturatedSubtract(), hasMoreThanOneUseOtherThanLLVMUsed(), hasOneUse(), isLoopIncrement(), processUMulZExtIdiom(), llvm::BasicBlock::removePredecessor(), replaceConstantExprOp(), SRAGlobal(), llvm::InstCombiner::visitSub(), and llvm::InstCombiner::visitXor().
|
inline |
Return true if there is exactly one user of this value.
This is specialized because it is a common request and does not require traversing the whole use list.
Definition at line 413 of file Value.h.
References E, getNumUses(), hasNUses(), hasNUsesOrMore(), I, isUsedInBasicBlock(), N, use_begin(), and use_end().
Referenced by areInverseVectorBitmasks(), AreSequentialAccesses(), buildMultiplyTree(), canEvaluateShifted(), canEvaluateShuffled(), llvm::slpvectorizer::BoUpSLP::canMapToVector(), canNotEvaluateInType(), canonicalizeSaturatedSubtract(), canSinkInstructions(), canTransformAccumulatorRecursion(), CC_MipsO32_FP64(), cheapToScalarize(), checkForNegativeOperand(), llvm::collectCmpOps(), collectInsertionElements(), llvm::LoopVectorizationCostModel::collectInstsToScalarize(), collectValuesToDemote(), combineLoadToOperationType(), CombineUAddWithOverflow(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), ConvertToSInt(), createAndInstr(), createRdxShuffleMask(), DeadPHICycle(), decomposeSimpleLinearExpr(), despeculateCountZeros(), emitGlobalConstantImpl(), findBuildAggregate(), findBuildVector(), findInitTrampolineFromAlloca(), llvm::SelectionDAGBuilder::FindMergedConditions(), FindSingleUseIdentifiedObject(), foldAndToXor(), foldBitcastExtElt(), llvm::FoldBranchToCommonDest(), FoldCondBranchOnPHI(), foldICmpShlOne(), foldICmpWithMinMax(), foldICmpWithTruncSignExtendedVal(), foldInsSequenceIntoBroadcast(), foldOperationIntoPhiValue(), foldOperationIntoSelectOperand(), foldOrToXor(), foldSelectICmpAnd(), foldSelectICmpAndAnd(), foldSelectICmpAndOr(), foldSelectShuffle(), llvm::InstCombiner::FoldShiftByConstant(), foldSignedTruncationCheck(), foldVectorCmp(), foldVecTruncToExtElt(), foldXorToXor(), getBinOpsForFactorization(), llvm::AArch64TTIImpl::getCastInstrCost(), getCompareCC(), getComparePred(), llvm::SystemZTTIImpl::getMemoryOpCost(), getPow(), getRelevantOperands(), getSelectFoldableConstant(), getTypePartition(), llvm::HexagonTTIImpl::getUserCost(), hasSameExtUse(), llvm::FastISel::hasTrivialKill(), hasUseOtherThanLLVMUsed(), hasUsesOutsideLoop(), hasValueBeenRAUWed(), isAlwaysFoldable(), llvm::RecurrenceDescriptor::isConditionalRdxPattern(), llvm::TargetLoweringBase::isExtLoad(), llvm::RecurrenceDescriptor::isFirstOrderRecurrence(), llvm::SystemZTTIImpl::isFoldableLoad(), isFormingBranchFromSelectProfitable(), isGEPFoldable(), isKnownTypeIdMember(), llvm::RecurrenceDescriptor::isMinMaxSelectCmpPattern(), isMulPowOf2(), isOnlyReachableViaThisEdge(), llvm::AArch64TargetLowering::isProfitableToHoist(), isPromotedInstructionLegal(), isReInterleaveMask(), isSafeAndProfitableToSinkLoad(), IsSafeComputationToRemove(), isSink(), LinearizeExprTree(), lookThroughAnd(), matchDeMorgansLaws(), narrowUDivURem(), llvm::InstCombiner::OptimizePointerDifference(), processUGT_ADDCST_ADD(), llvm::recognizeBSwapOrBitReverseIdiom(), removeEmptyCleanup(), replaceAllUsesOfWithIn(), replaceExtractElements(), llvm::InstCombiner::run(), shouldBeDeferred(), ShouldBreakUpSubtract(), shouldMergeGEPs(), ShrinkDemandedConstant(), SimplifyBSwap(), llvm::InstCombiner::simplifyDivRemOfSelectWithZeroOp(), SimplifyIndirectBrOnSelect(), simplifyValueKnownNonZero(), sinkAndCmp0Expression(), sinkLastInstruction(), sinkNotIntoXor(), sinkSelectOperand(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), supportedAddressingMode(), transformToIndexedCompare(), llvm::FastISel::tryToFoldLoad(), TryToSinkInstruction(), llvm::JumpThreadingPass::TryToUnfoldSelect(), llvm::JumpThreadingPass::TryToUnfoldSelectInCurrBB(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitAnd(), llvm::InstCombiner::visitCallInst(), llvm::InstCombiner::visitExtractElementInst(), llvm::InstCombiner::visitFCmpInst(), llvm::InstCombiner::visitFDiv(), llvm::InstCombiner::visitFMul(), llvm::InstCombiner::visitFPTrunc(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::InstCombiner::visitICmpInst(), llvm::InstCombiner::visitInsertValueInst(), llvm::InstCombiner::visitLoadInst(), llvm::InstCombiner::visitLShr(), visitMaskedMerge(), llvm::InstCombiner::visitMul(), llvm::InstCombiner::visitOr(), llvm::InstCombiner::visitPHINode(), llvm::InstCombiner::visitSExt(), llvm::InstCombiner::visitStoreInst(), llvm::InstCombiner::visitTrunc(), llvm::InstCombiner::visitXor(), and llvm::InstCombiner::visitZExt().
Check the optional flags for equality.
Definition at line 481 of file Value.h.
References SubclassOptionalData.
|
inline |
Return true if there is a value handle associated with this value.
Definition at line 486 of file Value.h.
Referenced by findInitTrampoline(), llvm::MemorySSAUpdater::removeMemoryAccess(), and llvm::SSAUpdaterBulk::RewriteAllUses().
bool Value::isSwiftError | ( | ) | const |
Return true if this value is a swifterror value.
swifterror values can be either a function argument or an alloca with a swifterror attribute.
Definition at line 726 of file Value.cpp.
References Arg, assert(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::begin(), llvm::dyn_cast(), E, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::end(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::getPointerIntoBucketsArray(), I, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::isPointerIntoBucketsArray(), llvm::AllocaInst::isSwiftError(), List, llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::size(), and llvm::LLVMContextImpl::ValueHandles.
Referenced by llvm::AllocaInst::cloneImpl(), combineLoadToOperationType(), combineStoreToValueType(), llvm::createHWAddressSanitizerPass(), GlobalWasGeneratedByCompiler(), isAtomic(), isUsedByMetadata(), and removeBitcastsFromLoadStoreOnMinMax().
|
inline |
Return true if there is metadata referencing this value.
Definition at line 489 of file Value.h.
References isSwiftError(), IsUsedByMD, and stripPointerCasts().
Referenced by contains(), llvm::createDeadArgHackingPass(), llvm::FindDbgAddrUses(), llvm::findDbgUsers(), llvm::findDbgValues(), getStartOrEndSlot(), llvm::hoistAllInstructionsInto(), llvm::replaceAllDbgUsesWith(), and ~Value().
bool Value::isUsedInBasicBlock | ( | const BasicBlock * | BB | ) | const |
Check if this value is used in the specified basic block.
Definition at line 139 of file Value.cpp.
References llvm::BasicBlock::begin(), llvm::dyn_cast(), llvm::BasicBlock::end(), llvm::is_contained(), user_begin(), and user_end().
Referenced by FindAllMemoryUses(), and hasOneUse().
|
inline |
Definition at line 335 of file Value.h.
Referenced by materialized_uses(), and use_begin().
|
inline |
|
inline |
Definition at line 328 of file Value.h.
Referenced by contains().
|
inline |
Definition at line 372 of file Value.h.
Referenced by materialized_users(), user_back(), and user_begin().
|
inline |
|
inline |
Definition at line 394 of file Value.h.
References llvm::make_range(), materialized_user_begin(), and user_end().
Referenced by forEachUser(), and users().
|
inline |
Definition at line 397 of file Value.h.
References llvm::make_range(), materialized_user_begin(), and user_end().
|
inline |
Definition at line 349 of file Value.h.
References llvm::make_range(), materialized_use_begin(), and use_end().
Referenced by readWideAPInt(), and uses().
|
inline |
Definition at line 352 of file Value.h.
References llvm::make_range(), materialized_use_begin(), and use_end().
|
inline |
Mutate the type of this Value to be of the specified type.
Note that this is an extremely dangerous operation which can create completely invalid IR very easily. It is strongly recommended that you recreate IR objects with the right types instead of mutating them in place.
Definition at line 604 of file Value.h.
References llvm::MCID::Compare, reverseUseList(), and sortUseList().
Referenced by getNarrowIntrinsic(), isCallPromotable(), llvm::CallBase::mutateFunctionType(), operator<<(), replaceAllUsesOfWithIn(), and wrapConstantAsMetadata().
void Value::print | ( | raw_ostream & | O, |
bool | IsForDebug = false |
||
) | const |
Implement operator<< on Value.
Definition at line 4148 of file AsmWriter.cpp.
References getModuleFromVal(), isReferencingMDNode(), and print().
Referenced by llvm::checkSanitizerInterfaceFunction(), llvm::MIRPrinter::convert(), createCast(), llvm::createMemDepPrinter(), ensurePromotedGV(), isCallPromotable(), llvm::operator<<(), llvm::ValueEnumerator::print(), llvm::AccelTableBase::HashData::print(), print(), llvm::AliasSet::print(), llvm::InstCombiner::run(), scaleCaseProbality(), shouldConvert(), truncateToSize(), and llvm::VerifierSupport::VerifierSupport().
void Value::print | ( | raw_ostream & | O, |
ModuleSlotTracker & | MST, | ||
bool | IsForDebug = false |
||
) | const |
Definition at line 4159 of file AsmWriter.cpp.
References F(), llvm::ModuleSlotTracker::getMachine(), getModuleFromVal(), llvm::Instruction::getParent(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::ModuleSlotTracker::incorporateFunction(), llvm_unreachable, print(), llvm::RISCVFenceField::W, and WriteConstantInternal().
void Value::printAsOperand | ( | raw_ostream & | O, |
bool | PrintType = true , |
||
const Module * | M = nullptr |
||
) | const |
Print the name of this Value out to the specified raw_ostream.
This is useful when you just want to print 'int reg126', not the instruction that generated it. If you specify a Module for context, then even constanst get pretty-printed; for example, the type of a null pointer is printed symbolically.
Definition at line 4225 of file AsmWriter.cpp.
References getModuleFromVal(), Machine, printAsOperandImpl(), and printWithoutType().
Referenced by llvm::DiagnosticInfoOptimizationBase::Argument::Argument(), llvm::MIRPrinter::convert(), ConvertDoubleToBytes(), llvm::createMemDepPrinter(), llvm::GVNExpression::Expression::dump(), llvm::ScheduleDAGInstrs::Value2SUsMap::dump(), llvm::AsmPrinter::EmitDebugValue(), llvm::AsmPrinter::EmitGlobalVariable(), llvm::LazyValueInfo::enableDT(), llvm::VPlan::execute(), llvm::AsmPrinter::lowerConstant(), mayUsePostIncMode(), patchAndReplaceAllUsesWith(), llvm::SCEV::print(), llvm::IVUsers::print(), llvm::AliasSet::print(), llvm::MachineOperand::print(), llvm::MachineMemOperand::print(), llvm::MemoryPhi::print(), llvm::VPBlendRecipe::print(), llvm::VPInterleaveRecipe::print(), llvm::VPWidenMemoryInstructionRecipe::print(), llvm::ScalarEvolution::print(), llvm::GVNExpression::BasicExpression::printInternal(), llvm::GVNExpression::CallExpression::printInternal(), llvm::GVNExpression::LoadExpression::printInternal(), llvm::GVNExpression::StoreExpression::printInternal(), printIRValueReference(), llvm::printLoop(), PrintModRefResults(), PrintResults(), reportLoadElim(), reportMayClobberedLoad(), setFastFlags(), SinkInstruction(), and llvm::VerifierSupport::VerifierSupport().
void Value::printAsOperand | ( | raw_ostream & | O, |
bool | PrintType, | ||
ModuleSlotTracker & | MST | ||
) | const |
Definition at line 4240 of file AsmWriter.cpp.
References llvm::ModuleSlotTracker::getMachine(), llvm::ModuleSlotTracker::getModule(), printAsOperandImpl(), and printWithoutType().
void Value::replaceAllUsesWith | ( | Value * | V | ) |
Change all uses of this to point to a new Value.
Go through the uses list for this definition and make each use point to "V" instead of "this". After this completes, 'this's use list is guaranteed to be empty.
Definition at line 429 of file Value.cpp.
Referenced by AddReachableCodeToWorklist(), llvm::MemorySSAUpdater::applyInsertUpdates(), atomicSizeSupported(), buildClonedLoopBlocks(), buildMultiplyTree(), llvm::DomTreeUpdater::callbackDeleteBB(), canCreateAliasFor(), canTransformToMemCmp(), changeToCall(), llvm::changeToInvokeAndSplitBasicBlock(), CleanupConstantGlobalUsers(), llvm::CloneAndPruneIntoFromInst(), CloneLoop(), collectFunctionUsers(), combineLoadToOperationType(), CombineUAddWithOverflow(), ComputePostOrders(), ConvertShiftToMul(), llvm::convertToDeclaration(), ConvertToSInt(), createCallInst(), createClone(), llvm::createCodeGenPreparePass(), llvm::createDeadArgHackingPass(), CreateGCRelocates(), llvm::createObjCARCOptPass(), createOrdering(), createResumeEntryBlock(), llvm::createScalarizerPass(), llvm::createSeparateConstOffsetFromGEPPass(), llvm::createShadowStackGCLoweringPass(), cse(), llvm::DeleteDeadBlocks(), deleteDeadInstruction(), llvm::DemotePHIToStack(), despeculateCountZeros(), doPromotion(), llvm::GVNExpression::Expression::dump(), llvm::EliminateDuplicatePHINodes(), llvm::objcarc::EraseInstruction(), llvm::expandAtomicRMWToCmpXchg(), llvm::expandDivision(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), llvm::expandRemainder(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), llvm::CodeExtractor::findInputsOutputs(), findPHIToPartitionLoops(), llvm::SanitizerStatReport::finish(), llvm::InnerLoopVectorizer::fixFirstOrderRecurrence(), foldAnyOrAllBitsSet(), llvm::foldBlockIntoPredecessor(), foldGuardedRotateToFunnelShift(), FoldTwoEntryPHINode(), FunctionNumber(), getArrayElements(), getChainID(), llvm::VNCoercion::getLoadValueForLoad(), GetLoopInvariantInsertPosition(), getMulHu(), getNarrowIntrinsic(), getOrInsertValueProfilingCall(), GetPointerOperand(), getPow(), getReducedType(), getRetComponentType(), GetRMWLibcall(), getScalarIntrinsicDeclaration(), getSignature(), getStartOrEndSlot(), getTrueOrFalseValue(), handleNoSuspendCoroutine(), llvm::Constant::handleOperandChange(), hasName(), hasProfileData(), hasSameExtUse(), hasZeroSignBit(), llvm::hoistRegion(), HoistThenElseCodeToIf(), INITIALIZE_PASS(), llvm::InlineFunction(), InsertRootInitializers(), instrumentMaskedLoadOrStore(), isAlwaysFoldable(), isCallPromotable(), isKnownTypeIdMember(), isOnlyReachableViaThisEdge(), isThunkProfitable(), llvm::log2(), LowerAtomicCmpXchgInst(), LowerAtomicRMWInst(), lowerExpectIntrinsic(), llvm::IntrinsicLowering::LowerIntrinsicCall(), lowerLoadRelative(), LowerRotate(), lowerSubFn(), llvm::IntrinsicLowering::LowerToByteSwap(), makeBitReverse(), mapBinOpcode(), MarkBlocksLiveIn(), maybeSetDSOLocal(), llvm::MergeBasicBlockIntoOnlyPred(), llvm::MergeBlockIntoPredecessor(), mergeCleanupPad(), mergeEmptyReturnBlocks(), mergeInlinedArrayAllocas(), llvm::InstDeleterIRStrategy::mutate(), operator<<(), llvm::LibCallSimplifier::optimizeCall(), optimizeDivRem(), OptimizeEmptyGlobalCXXDtors(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), OptimizeGlobalAddressOfMalloc(), OptimizeGlobalAliases(), optimizeSQRT(), patchAndReplaceAllUsesWith(), performMaskedAtomicOp(), processAShr(), llvm::JumpThreadingPass::ProcessBranchOnXOR(), processCmp(), processInternalGlobal(), processOverflowIntrinsic(), processPHI(), processSDiv(), processSelect(), processSRem(), processUDivOrURem(), promotedOpIsNUW(), promoteSingleBlockAlloca(), PropagateConstantReturn(), PropagateConstantsIntoArguments(), PushArgMD(), llvm::removeAllNonTerminatorAndEHPadInstructions(), removeCoroEnds(), removeGlobalCtors(), llvm::PHINode::removeIncomingValue(), llvm::BasicBlock::removePredecessor(), llvm::removeUnwindEdge(), replace(), replaceAliasWithAliasee(), replaceAndRecursivelySimplifyImpl(), llvm::AMDGPULibCalls::replaceCall(), ReplaceCallWith(), llvm::SCEVExpander::replaceCongruentIVs(), llvm::coro::replaceCoroFree(), llvm::replaceCreatedSSACopys(), replaceFrameSize(), llvm::InstCombiner::replaceInstUsesWith(), llvm::ReplaceInstWithValue(), ReplaceUsesOfWith(), reportLoadElim(), reportMayClobberedLoad(), llvm::BitcodeReaderValueList::resolveConstantForwardRefs(), reuseTableCompare(), RewriteHeapSROALoadUser(), rewritePHINodesForExitAndUnswitchedBlocks(), rewritePHIs(), rewriteSingleStoreAlloca(), llvm::LoadAndStorePromoter::run(), llvm::WholeProgramDevirtPass::run(), llvm::InstCombiner::run(), runImpl(), llvm::runIPSCCP(), scalarizeMaskedGather(), scalarizeMaskedLoad(), shouldFixMainFunction(), shouldKeepFDivF32(), simplifyAndDCEInstruction(), simplifyCommonValuePhi(), SimplifyIndirectBrOnSelect(), llvm::simplifyLoopAfterUnroll(), simplifyOneLoop(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), simplifyRelocatesOffABase(), simplifySuspendPoint(), sink(), speculatePHINodeLoads(), speculateSelectInstLoads(), splitCallSite(), splitGlobal(), llvm::SplitLandingPadPredecessors(), SRAGlobal(), StackMallocSizeClass(), truncateIVUse(), llvm::InnerLoopVectorizer::truncateToMinimalBitwidths(), tryCSEWithPredecessor(), tryPromoteAllocaToVector(), tryToOptimizeStoreOfMallocToGlobal(), tryToReplaceWithConstant(), TryToShrinkGlobalToBoolean(), llvm::TryToSimplifyUncondBranchFromEmptyBlock(), llvm::JumpThreadingPass::TryToUnfoldSelectInCurrBB(), llvm::UnrollAndJamLoop(), llvm::AMDGPULibCalls::useNative(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::sroa::AllocaSliceRewriter::visit(), llvm::ObjectSizeOffsetEvaluator::visitPHINode(), and llvm::BasicBlock::~BasicBlock().
void Value::replaceNonMetadataUsesWith | ( | Value * | V | ) |
void Value::replaceUsesOutsideBlock | ( | Value * | V, |
BasicBlock * | BB | ||
) |
replaceUsesOutsideBlock - Go through the uses list for this definition and make each use point to "V" instead of "this" when the use is outside the block.
'This's use list is expected to have at least one element. Unlike replaceAllUsesWith this function does not support basic block values or constant users.
Definition at line 439 of file Value.cpp.
References assert(), contains(), llvm::dyn_cast(), E, getType(), llvm::Use::getUser(), llvm::Use::set(), use_begin(), and use_end().
Referenced by createFFSIntrinsic(), hasName(), and llvm::InstCombiner::replacedSelectWithOperand().
void Value::reverseUseList | ( | ) |
Change the name of the value.
Choose a new unique name if the provided name is taken.
Name | The new name; or "" if the value's name should be removed. |
Definition at line 285 of file Value.cpp.
References F().
Referenced by llvm::GetElementPtrInst::accumulateConstantOffset(), llvm::AllocaInst::AllocaInst(), llvm::Argument::Argument(), llvm::BinaryOperator::BinaryOperator(), buildMultiplyTree(), llvm::CloneBasicBlock(), llvm::CloneFunction(), cloneInstForMustTail(), CloneInstructionInExitBlock(), llvm::CloneModule(), llvm::CmpInst::CmpInst(), llvm::LandingPadInst::Create(), llvm::CallInst::CreateFree(), createMemMoveLoop(), llvm::InnerLoopVectorizer::createVectorizedLoopSkeleton(), CreateWrapper(), llvm::FunctionImportGlobalProcessing::doImportAsDefinition(), doPromotion(), llvm::JumpThreadingPass::DuplicateCondBranchOnPHIIntoPred(), llvm::DuplicateInstructionsInSplitBetween(), eliminateRecursiveTailCall(), llvm::InnerLoopVectorizer::emitMemRuntimeChecks(), llvm::InnerLoopVectorizer::emitSCEVChecks(), externalize(), llvm::FenceInst::FenceInst(), findInitTrampoline(), llvm::CodeExtractor::findInputsOutputs(), llvm::InnerLoopVectorizer::fixupIVUsers(), llvm::foldBlockIntoPredecessor(), llvm::FoldBranchToCommonDest(), FoldCondBranchOnPHI(), forceRenaming(), FunctionNumber(), generateUnsignedDivisionCode(), llvm::BasicBlock::getContext(), llvm::InvokeInst::getLandingPadInst(), hasName(), INITIALIZE_PASS(), llvm::IRBuilderDefaultInserter::InsertHelper(), instrumentMaskedLoadOrStore(), isAlwaysFoldable(), llvm::ShuffleVectorInst::isConcat(), isKnownTypeIdMember(), isOnlyReachableViaThisEdge(), llvm::ExtractElementInst::isValidOperands(), llvm::LoadInst::LoadInst(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::makeGuardControlFlowExplicit(), makeStatepointExplicitImpl(), mayLoopAccessLocation(), NegateValue(), llvm::peelLoop(), false::LibCallsShrinkWrap::perform(), llvm::CallBase::populateBundleOperandInfos(), rematerializeLiveValues(), llvm::CatchSwitchInst::removeHandler(), rename(), ReplaceCallWith(), RetagMask(), rewriteComdat(), rewriteMaterializableInstructions(), llvm::WholeProgramDevirtPass::run(), llvm::InnerLoopVectorizer::scalarizeInstruction(), selectJumpTableArmEncoding(), shouldFixMainFunction(), shouldRotateLoopExitingLatch(), llvm::ShuffleVectorInst::ShuffleVectorInst(), sinkInstruction(), splitBlockIfNotFirst(), llvm::SplitLandingPadPredecessors(), StripSymtab(), SwitchToLookupTable(), takeName(), llvm::JumpThreadingPass::ThreadEdge(), turnGuardIntoBranch(), TypeSizeToSizeIndex(), llvm::UnaryOperator::UnaryOperator(), unpackLoadToAggregate(), llvm::UnrollRuntimeLoopRemainder(), llvm::VAArgInst::VAArgInst(), versionCallSite(), llvm::LoopVersioning::versionLoop(), llvm::InnerLoopVectorizer::widenIntOrFpInduction(), and llvm::InnerLoopVectorizer::widenPHIInstruction().
void Value::setValueName | ( | ValueName * | VN | ) |
Definition at line 197 of file Value.cpp.
References assert(), getContext(), HasName, llvm::LLVMContext::pImpl, and llvm::LLVMContextImpl::ValueNames.
Referenced by deleteValue(), getName(), hasName(), rewriteComdat(), takeName(), and llvm::ValueSymbolTable::~ValueSymbolTable().
|
inlineprotected |
Definition at line 656 of file Value.h.
References D.
Referenced by llvm::Function::classof(), llvm::ConstantExpr::classof(), computeAddrSpace(), llvm::ConstantExpr::ConstantExpr(), llvm::Function::dropAllReferences(), llvm::BasicBlock::getLandingPadInst(), llvm::CmpInst::makeCmpResultType(), llvm::Function::setPrologueData(), llvm::Function::stealArgumentListFrom(), and llvm::Function::~Function().
void llvm::Value::sortUseList | ( | Compare | Cmp | ) |
Sort the use-list.
Sorts the Value's use-list by Cmp using a stable mergesort. Cmp is expected to compare two Use references.
Definition at line 687 of file Value.h.
Referenced by FunctionNumber(), mutateType(), and readWideAPInt().
const Value * Value::stripAndAccumulateInBoundsConstantOffsets | ( | const DataLayout & | DL, |
APInt & | Offset | ||
) | const |
Accumulate offsets from stripInBoundsConstantOffsets().
Stores the resulting constant offset stripped into the APInt provided. The provided APInt will be extended or truncated as needed to be the correct bitwidth for an offset of this pointer type.
If this is called on a non-pointer value, it returns 'this'.
Definition at line 547 of file Value.cpp.
References assert(), GEP, llvm::APInt::getBitWidth(), llvm::DataLayout::getIndexSizeInBits(), llvm::Operator::getOpcode(), getType(), llvm::SmallPtrSetImpl< PtrType >::insert(), and llvm::Type::isPointerTy().
Referenced by despeculateCountZeros(), llvm::GlobalIndirectSymbol::getBaseObject(), llvm::isConsecutiveAccess(), propagateMetadata(), stripAndAccumulateInBoundsConstantOffsets(), stripInBoundsConstantOffsets(), and llvm::InstCombiner::visitGetElementPtrInst().
|
inline |
Definition at line 548 of file Value.h.
References stripAndAccumulateInBoundsConstantOffsets(), and stripInBoundsOffsets().
Strip off pointer casts and all-constant inbounds GEPs.
Returns the original pointer value. If this is called on a non-pointer value, it returns 'this'.
Definition at line 537 of file Value.cpp.
Referenced by getUnderlyingArgReg(), llvm::CodeExtractor::isLegalToShrinkwrapLifetimeMarkers(), llvm::FastISel::selectIntrinsicCall(), stripInBoundsConstantOffsets(), and stripPointerCastsNoFollowAliases().
|
inline |
Definition at line 534 of file Value.h.
References stripAndAccumulateInBoundsConstantOffsets(), and stripInBoundsConstantOffsets().
Strip off pointer casts and inbounds GEPs.
Returns the original pointer value. If this is called on a non-pointer value, it returns 'this'.
Definition at line 589 of file Value.cpp.
Referenced by llvm::GlobalIndirectSymbol::getBaseObject(), getSuccPad(), getTypePartition(), shouldInstrumentReadWriteFromAddress(), stripAndAccumulateInBoundsConstantOffsets(), stripInBoundsOffsets(), and llvm::sroa::AllocaSliceRewriter::visit().
|
inline |
Definition at line 559 of file Value.h.
References DoPHITranslation(), getPointerAlignment(), getPointerDereferenceableBytes(), and stripInBoundsOffsets().
Strip off pointer casts, all-zero GEPs, and aliases.
Returns the original uncasted value. If this is called on a non-pointer value, it returns 'this'.
Definition at line 529 of file Value.cpp.
Referenced by llvm::MachineFunction::addLandingPad(), llvm::classifyEHPersonality(), llvm::ObjectSizeOffsetVisitor::compute(), llvm::ObjectSizeOffsetEvaluator::compute(), computePointerICmp(), ConvertDoubleToBytes(), llvm::emitBinaryFloatFnCall(), llvm::emitCalloc(), llvm::emitMalloc(), llvm::emitMemChr(), llvm::emitMemCmp(), llvm::emitMemCpyChk(), llvm::emitPutChar(), llvm::emitPutS(), llvm::AsmPrinter::EmitSpecialLLVMGlobal(), llvm::emitStrCpy(), llvm::emitStrNCmp(), llvm::emitStrNCpy(), emitUnaryFloatFnCallHelper(), enforceKnownAlignment(), llvm::objcarc::EraseInstruction(), llvm::Evaluator::EvaluateBlock(), llvm::AlignmentFromAssumptionsPass::extractAlignmentInfo(), llvm::ExtractTypeInfo(), findArgumentCopyElisionCandidates(), llvm::FindAvailablePtrLoadStore(), findBasePointer(), llvm::findDevirtualizableCallsForTypeTest(), findInitTrampoline(), findInitTrampolineFromAlloca(), findSafeStoreForStoreStrongContraction(), findUsedValues(), getCalledFunction(), llvm::getConstantDataArrayInfo(), llvm::MemIntrinsicBase< AnyMemIntrinsic >::getDest(), llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getGEPCost(), llvm::MemoryDependenceResults::getInvariantGroupPointerDependency(), getKnownConstant(), llvm::InstrProfIncrementInst::getName(), llvm::InstrProfValueProfileInst::getName(), getOpenCLAlignment(), getParentPad(), llvm::LazyValueInfo::getPredicateAt(), llvm::CoroIdInst::getPromise(), llvm::objcarc::GetRCIdentityRoot(), llvm::objcarc::getreturnRVOperand(), llvm::MemTransferBase< AnyMemIntrinsic >::getSource(), GetStringLengthH(), getSuccPad(), getSuccState(), getUnderlyingArgReg(), hasNoAliasAttr(), hasUndefContents(), llvm::InlineFunction(), InsertRootInitializers(), instrumentMaskedLoadOrStore(), isKnownNonConstant(), isObjectSizeLessThanOrEq(), isOverwrite(), IsPointerOffset(), llvm::isSafeToLoadUnconditionally(), isUsedByMetadata(), isZero(), llvm::BlockAddress::lookup(), moveUp(), OptimizeEmptyGlobalCXXDtors(), optimizeOnceStoredGlobal(), llvm::JumpThreadingPass::ProcessBlock(), removePartiallyOverlappedStores(), llvm::WholeProgramDevirtPass::run(), llvm::FastISel::selectPatchpoint(), shouldFixMainFunction(), simplifyInvariantGroupIntrinsic(), simplifySuspendPoint(), llvm::Constant::stripPointerCasts(), stripPointerCasts(), transformToIndexedCompare(), tryToMoveFreeBeforeNullTest(), llvm::InnerLoopVectorizer::vectorizeInterleaveGroup(), llvm::InstCombiner::visitGetElementPtrInst(), and llvm::InstCombiner::visitLandingPadInst().
|
inline |
Definition at line 502 of file Value.h.
References stripPointerCasts(), and stripPointerCastsAndInvariantGroups().
Strip off pointer casts, all-zero GEPs, aliases and invariant group info.
Returns the original uncasted value. If this is called on a non-pointer value, it returns 'this'. This function should be used only in Alias analysis.
Definition at line 541 of file Value.cpp.
Referenced by aliasSameBasePointerGEPs(), MergeAliasResults(), simplifyInvariantGroupIntrinsic(), stripPointerCasts(), and stripPointerCastsAndInvariantGroups().
|
inline |
Definition at line 514 of file Value.h.
References stripPointerCastsAndInvariantGroups(), and stripPointerCastsNoFollowAliases().
Strip off pointer casts and all-zero GEPs.
Returns the original uncasted value. If this is called on a non-pointer value, it returns 'this'.
Definition at line 533 of file Value.cpp.
Referenced by compareNames(), FindUsedValues(), llvm::StackSafetyInfo::FunctionInfo::FunctionInfo(), INITIALIZE_PASS(), stripPointerCastsAndInvariantGroups(), and stripPointerCastsNoFollowAliases().
|
inline |
Definition at line 524 of file Value.h.
References stripInBoundsConstantOffsets(), and stripPointerCastsNoFollowAliases().
void Value::takeName | ( | Value * | V | ) |
Transfer the name from V to this value.
After taking V's name, sets V's name to empty.
Definition at line 291 of file Value.cpp.
References assert(), getSymTab(), getValueName(), hasName(), setName(), llvm::StringMapEntry< ValueTy >::setValue(), setValueName(), and llvm::ARM_MB::ST.
Referenced by buildClonedLoopBlocks(), canCreateAliasFor(), changeToCall(), ConvertShiftToMul(), llvm::convertToDeclaration(), ConvertToSInt(), llvm::createDeadArgHackingPass(), llvm::createScalarizerPass(), llvm::createSeparateConstOffsetFromGEPPass(), llvm::createShadowStackGCLoweringPass(), decomposeSimpleLinearExpr(), doPromotion(), eliminateRecursiveTailCall(), llvm::FoldBranchToCommonDest(), foldICmpShlOne(), foldICmpWithMinMax(), foldOperationIntoPhiValue(), llvm::InstCombiner::FoldShiftByConstant(), foldShiftedShift(), FoldTwoEntryPHINode(), forceRenaming(), getBinOpsForFactorization(), llvm::VNCoercion::getLoadValueForLoad(), getMinVisibility(), getReducedType(), getRetComponentType(), getScalarIntrinsicDeclaration(), getSignature(), getTrueOrFalseValue(), HandleInlinedEHPad(), hasName(), HoistThenElseCodeToIf(), INITIALIZE_PASS(), llvm::InlineFunction(), InsertRootInitializers(), instrumentMaskedLoadOrStore(), isGEPFoldable(), isKnownTypeIdMember(), isSelect01(), isThunkProfitable(), isZeroLengthArray(), LowerNegateToMultiply(), llvm::MergeBlockIntoPredecessor(), OptimizeGlobalAliases(), removeGlobalCtors(), llvm::removeUnwindEdge(), replaceAliasWithAliasee(), llvm::ReplaceInstWithValue(), replaceUnaryCall(), reportLoadElim(), reportMayClobberedLoad(), rewritePHIs(), setUsedInitializer(), shouldKeepFDivF32(), ShrinkDemandedConstant(), simplifyAllocaArraySize(), simplifyAssocCastAssoc(), SimplifyBSwap(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), simplifyRelocatesOffABase(), llvm::InnerLoopVectorizer::truncateToMinimalBitwidths(), TryToShrinkGlobalToBoolean(), unifyBitWidth(), llvm::InstCombiner::visitAnd(), llvm::InstCombiner::visitCallInst(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::InstCombiner::visitOr(), llvm::InstCombiner::visitTrunc(), and llvm::InstCombiner::visitXor().
|
inline |
Definition at line 339 of file Value.h.
References assertModuleIsMaterialized(), and materialized_use_begin().
Referenced by llvm::MemorySSAUpdater::applyInsertUpdates(), createCallInst(), llvm::createMergeFunctionsPass(), getNumUses(), getSignature(), hasNUses(), hasNUsesOrMore(), hasOneUse(), INITIALIZE_PASS(), llvm::MemorySSAUpdater::insertDef(), isDirectCall(), isMulPowOf2(), LLVMGetFirstUse(), lookThroughAnd(), lowerLoadRelative(), lowerObjCCall(), OptimizeGlobalAddressOfMalloc(), predictValueUseListOrder(), llvm::ValueEnumerator::print(), llvm::MemorySSAUpdater::removeMemoryAccess(), replaceDominatedUsesWith(), replaceLoopInvariantUses(), llvm::replaceNonLocalUsesWith(), replaceUsesOutsideBlock(), RetagMask(), RewriteUsesOfClonedInstructions(), llvm::WholeProgramDevirtPass::run(), llvm::InstCombiner::run(), and sinkInstruction().
|
inline |
Definition at line 343 of file Value.h.
References assertModuleIsMaterialized(), and materialized_use_begin().
|
inline |
Definition at line 323 of file Value.h.
References assertModuleIsMaterialized().
Referenced by AddAliasScopeMetadata(), AddReachableCodeToWorklist(), llvm::attributesPermitTailCall(), buildMultiplyTree(), llvm::DomTreeUpdater::callbackDeleteBB(), canCreateAliasFor(), combineLoadToOperationType(), ComputePostOrders(), containsProfilingIntrinsics(), ConvertToSInt(), llvm::SelectionDAGBuilder::CopyToExportRegsIfNeeded(), llvm::createDeadArgHackingPass(), llvm::createDwarfEHPass(), llvm::createObjCARCOptPass(), createRetPHINode(), DCEInstruction(), DeadPHICycle(), llvm::DeleteDeadBlocks(), deleteDeadInstruction(), deleteIfDead(), llvm::DemotePHIToStack(), llvm::DemoteRegToStack(), despeculateCountZeros(), llvm::Constant::destroyConstant(), llvm::NVPTXAsmPrinter::doFinalization(), llvm::AsmPrinter::doFinalization(), doPromotion(), llvm::LLVMContextImpl::dropTriviallyDeadConstantArrays(), llvm::InstCombiner::eraseInstFromFunction(), llvm::objcarc::EraseInstruction(), findInitTrampoline(), FunctionNumber(), getMinVisibility(), getRetComponentType(), getScalarIntrinsicDeclaration(), getSignature(), getUnderlyingArgReg(), hasAddressTakenAndUsed(), hasProfileData(), hasSameExtUse(), hasUseOtherThanLLVMUsed(), hasUsesOutsideLoop(), llvm::hoistRegion(), llvm::InlineFunction(), isAlwaysFoldable(), isBroadcastShuffle(), isDirectCall(), llvm::isInstructionTriviallyDead(), isLoadInvariantInLoop(), IsNonLocalValue(), isOnlyReachableViaThisEdge(), isOnlyUsedInEntryBlock(), isPromotedInstructionLegal(), isReportingError(), isSafeToEliminateVarargsCast(), isSafeToPromoteArgument(), isUsedOutsideOfDefiningBlock(), LinearizeExprTree(), llvm::AMDGPUCallLowering::lowerFormalArguments(), llvm::IntrinsicLowering::LowerIntrinsicCall(), lowerLoadRelative(), lowerObjCCall(), LowerRotate(), makeStatepointExplicitImpl(), MarkBlocksLiveIn(), maybePrintComdat(), mergeConstants(), llvm::AliasSet::mergeSetIn(), mustPreserveGV(), OptimizeAwayTrappingUsesOfLoads(), OptimizeExtractBits(), OptimizeGlobalAddressOfMalloc(), optimizeGlobalsInModule(), passingValueIsAlwaysUndefined(), patchAndReplaceAllUsesWith(), false::LibCallsShrinkWrap::perform(), performMaskedAtomicOp(), predictValueUseListOrder(), processInternalGlobal(), llvm::promoteLoopAccessesToScalars(), promoteSingleBlockAlloca(), PropagateConstantsIntoArguments(), propagateMetadata(), llvm::RecursivelyDeleteTriviallyDeadInstructions(), llvm::removeAllNonTerminatorAndEHPadInstructions(), RemoveDeadConstant(), llvm::LazyCallGraph::removeDeadFunction(), removeDeadUsersOfConstant(), removeEmptyCleanup(), llvm::MemorySSA::removeFromLookups(), removeGlobalCtors(), llvm::MemorySSAUpdater::removeMemoryAccess(), ReplaceCallWith(), ReplaceFoldableUses(), llvm::InstCombiner::replaceInstUsesWith(), llvm::LazyCallGraph::RefSCC::replaceNodeFunction(), RewriteUsesOfClonedInstructions(), RewriteUsesOfLoadForHeapSRoA(), llvm::GlobalDCEPass::run(), llvm::InlinerPass::run(), llvm::LoadAndStorePromoter::run(), llvm::WholeProgramDevirtPass::run(), llvm::InstCombiner::run(), runImpl(), llvm::JumpThreadingPass::runImpl(), llvm::runIPSCCP(), llvm::FastISel::selectIntrinsicCall(), llvm::FastISel::CallLoweringInfo::setCallee(), llvm::TargetLowering::CallLoweringInfo::setCallee(), simplifyAndDCEInstruction(), llvm::InstCombiner::simplifyDivRemOfSelectWithZeroOp(), SinkCast(), SinkCmpExpression(), AllocaSlices::SliceBuilder::SliceBuilder(), speculatePHINodeLoads(), speculateSelectInstLoads(), splitCallSite(), splitGlobal(), splitGlobals(), llvm::SplitLandingPadPredecessors(), SRAGlobal(), llvm::Function::stealArgumentListFrom(), stripDeadPrototypes(), StripSymbolNames(), llvm::InnerLoopVectorizer::truncateToMinimalBitwidths(), tryToElideArgumentCopy(), TryToShrinkGlobalToBoolean(), updateOperand(), useFuncSeen(), llvm::PtrUseVisitor< SliceBuilder >::visitGetElementPtrInst(), llvm::VPReplicateRecipe::VPReplicateRecipe(), llvm::BasicBlock::~BasicBlock(), and ~Value().
|
inline |
Definition at line 347 of file Value.h.
Referenced by createCallInst(), llvm::createMergeFunctionsPass(), getNumUses(), getSignature(), hasNUses(), hasNUsesOrMore(), hasOneUse(), INITIALIZE_PASS(), llvm::MemorySSAUpdater::insertDef(), isDirectCall(), LLVMGetFirstUse(), lowerLoadRelative(), lowerObjCCall(), materialized_uses(), predictValueUseListOrder(), replaceDominatedUsesWith(), replaceLoopInvariantUses(), llvm::replaceNonLocalUsesWith(), replaceUsesOutsideBlock(), RetagMask(), RewriteUsesOfClonedInstructions(), llvm::WholeProgramDevirtPass::run(), and sinkInstruction().
|
inline |
|
inline |
Definition at line 386 of file Value.h.
References assertModuleIsMaterialized(), and materialized_user_begin().
Referenced by llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), llvm::Constant::destroyConstant(), doPromotion(), emitGlobalConstantImpl(), findInitTrampolineFromAlloca(), getRetComponentType(), OptimizeGlobalAddressOfMalloc(), removeDeadUsersOfConstant(), llvm::runIPSCCP(), SRAGlobal(), StripSymbolNames(), TryToShrinkGlobalToBoolean(), llvm::InstCombiner::visitInsertValueInst(), and llvm::BasicBlock::~BasicBlock().
Definition at line 390 of file Value.h.
References assertModuleIsMaterialized(), and materialized_user_begin().
|
inline |
Definition at line 376 of file Value.h.
References assertModuleIsMaterialized(), and materialized_user_begin().
Referenced by addAllGlobalValueUsers(), areAllUsesEqual(), llvm::slpvectorizer::BoUpSLP::canMapToVector(), canPaddingBeAccessed(), canSinkInstructions(), canTransformToMemCmp(), llvm::GraphTraits< Inverse< MemoryAccess * > >::child_begin(), CleanupConstantGlobalUsers(), CleanupPointerRootUsers(), combineLoadToOperationType(), CombineUAddWithOverflow(), ConstantPropUsersOf(), ConvertToSInt(), llvm::ScalarEvolution::delinearize(), llvm::CodeExtractor::findInputsOutputs(), foldOperationIntoPhiValue(), llvm::AArch64TTIImpl::getCastInstrCost(), llvm::getMallocType(), llvm::SystemZTTIImpl::getMemoryOpCost(), getTypePartition(), llvm::AliasSet::getUniqueInstruction(), hasProfileData(), hasSameExtUse(), llvm::FastISel::hasTrivialKill(), hasUsesOutsideLoop(), INITIALIZE_PASS(), llvm::isAllocaPromotable(), llvm::SystemZTTIImpl::isFoldableLoad(), isIgnorableInst(), isKnownTypeIdMember(), llvm::RecurrenceDescriptor::isMinMaxSelectCmpPattern(), isPromotedInstructionLegal(), isReInterleaveMask(), isSink(), isUsedInBasicBlock(), isZeroLengthArray(), LinearizeExprTree(), MarkBlocksLiveIn(), moveUp(), operator new(), OptimizeAwayTrappingUsesOfLoads(), OptimizeAwayTrappingUsesOfValue(), OptimizeEmptyGlobalCXXDtors(), OptimizeExtractBits(), passingValueIsAlwaysUndefined(), PerformHeapAllocSRoA(), processUMulZExtIdiom(), promoteSingleBlockAlloca(), llvm::Constant::removeDeadConstantUsers(), removeLifetimeIntrinsicUsers(), replaceAllUsesOfWithIn(), replaceConstantExprOp(), llvm::BitcodeReaderValueList::resolveConstantForwardRefs(), RewriteHeapSROALoadUser(), rewriteSingleStoreAlloca(), RewriteUsesOfLoadForHeapSRoA(), llvm::InstCombiner::run(), sink(), sinkAndCmp0Expression(), SinkCast(), SinkCmpExpression(), sinkLastInstruction(), SinkShiftAndTruncate(), supportedAddressingMode(), llvm::UpgradeCallsToIntrinsic(), and llvm::PredicateInfo::~PredicateInfo().
|
inline |
Definition at line 380 of file Value.h.
References assertModuleIsMaterialized(), and materialized_user_begin().
|
inline |
Definition at line 364 of file Value.h.
References assertModuleIsMaterialized().
Referenced by llvm::AliasSet::getUniqueInstruction(), hasUsesOutsideLoop(), INITIALIZE_PASS(), and isValidCandidateForColdCC().
|
inline |
Definition at line 384 of file Value.h.
Referenced by addAllGlobalValueUsers(), areAllUsesEqual(), llvm::slpvectorizer::BoUpSLP::canMapToVector(), canPaddingBeAccessed(), canTransformToMemCmp(), llvm::GraphTraits< Inverse< MemoryAccess * > >::child_end(), CleanupConstantGlobalUsers(), CleanupPointerRootUsers(), combineLoadToOperationType(), ConstantPropUsersOf(), llvm::ScalarEvolution::delinearize(), llvm::CodeExtractor::findInputsOutputs(), foldOperationIntoPhiValue(), llvm::getMallocType(), llvm::AliasSet::getUniqueInstruction(), hasProfileData(), INITIALIZE_PASS(), llvm::isAllocaPromotable(), isReInterleaveMask(), isUsedInBasicBlock(), isZeroLengthArray(), MarkBlocksLiveIn(), materialized_users(), moveUp(), operator new(), OptimizeAwayTrappingUsesOfLoads(), OptimizeAwayTrappingUsesOfValue(), OptimizeEmptyGlobalCXXDtors(), OptimizeExtractBits(), PerformHeapAllocSRoA(), processUMulZExtIdiom(), promoteSingleBlockAlloca(), llvm::Constant::removeDeadConstantUsers(), removeLifetimeIntrinsicUsers(), replaceAllUsesOfWithIn(), replaceConstantExprOp(), RewriteHeapSROALoadUser(), rewriteSingleStoreAlloca(), RewriteUsesOfLoadForHeapSRoA(), sink(), sinkAndCmp0Expression(), SinkCast(), SinkCmpExpression(), SinkShiftAndTruncate(), llvm::UpgradeCallsToIntrinsic(), and llvm::PredicateInfo::~PredicateInfo().
|
inline |
|
inline |
Definition at line 400 of file Value.h.
References assertModuleIsMaterialized(), and materialized_users().
Referenced by addAllGlobalValueUsers(), addNoRecurseAttrsTopDown(), llvm::InstCombineWorklist::AddUsersToWorkList(), allCallersPassInValidPointerForArgument(), AllGlobalLoadUsesSimpleEnoughForHeapSRA(), allNonInstructionUsersCanBeMadeInstructions(), allUsersAreInFunction(), AllUsesOfLoadedValueWillTrapIfNull(), AllUsesOfValueWillTrapIfNull(), AlmostDeadIV(), alwaysAvailable(), llvm::MemorySSAUpdater::applyInsertUpdates(), BlockIsSimpleEnoughToThreadThrough(), buildMultiplyTree(), llvm::calculateClrEHStateNumbers(), calculateCXXStateNumbers(), calculateSEHStateNumbers(), llvm::LoopVectorizationLegality::canFoldTailByMasking(), llvm::slpvectorizer::BoUpSLP::canMapToVector(), canonicalizeSaturatedSubtract(), llvm::canTrackGlobalVariableInterprocedurally(), llvm::ARMTargetLowering::CCAssignFnForReturn(), ChangeCalleesToFastCall(), changeCallSitesToColdCC(), cheapToScalarize(), clearAssumptionsOfUsers(), llvm::CloneAndPruneIntoFromInst(), cloneConstantExprWithNewAddressSpace(), collectCallers(), collectFunctionUsers(), combineLoadToOperationType(), completeEphemeralValues(), ComputePostOrders(), ConvertToSInt(), createCallInst(), createCast(), llvm::createCodeGenPreparePass(), llvm::createObjCARCOptPass(), createRetBitCast(), createRetPHINode(), detectPopcountIdiom(), detectShiftUntilZeroIdiom(), llvm::InstCombiner::dominatesAllUses(), doPromotion(), llvm::LazyValueInfo::enableDT(), eraseDeadBBsAndChildren(), llvm::CodeExtractor::findAllocas(), llvm::FindDbgAddrUses(), llvm::findDbgUsers(), llvm::findDbgValues(), findInitTrampoline(), findInitTrampolineFromAlloca(), findInnerReductionPhi(), llvm::CodeExtractor::findInputsOutputs(), FindSingleUseIdentifiedObject(), llvm::InnerLoopVectorizer::fixupIVUsers(), foldOperationIntoPhiValue(), getCleanupRetUnwindDest(), getFirstNonAllocaInTheEntryBlock(), GetLoopInvariantInsertPosition(), llvm::HexagonTargetObjectFile::getLutUsedFunction(), llvm::GlobalsAAResult::getModRefBehavior(), getModuleFromVal(), llvm::DOTGraphTraits< BoUpSLP * >::getNodeAttributes(), getNumGlobalVariableUses(), getParentPad(), getPreferredExtendForValue(), getRangeForAffineARHelper(), getRelevantOperands(), llvm::StatepointBase< Function, Instruction, Value, CallSite >::getRelocates(), getSignature(), getTypePartition(), llvm::getUniqueCastUse(), getUnwindDestToken(), getUnwindDestTokenHelper(), GlobalUsersSafeToSRA(), hasBranchUse(), hasChangeableCC(), hasExceptionPointerOrCodeUser(), hasLifetimeMarkers(), hasOnlySelectUsers(), llvm::hasOutsideLoopUser(), hasProfileData(), hasSameExtUse(), hasStoreUsersOnly(), hasUsesOutsideLoop(), hasZeroSignBit(), INITIALIZE_PASS(), llvm::DivergenceAnalysis::inRegion(), insertSinCosCall(), llvm::isAllocaPromotable(), isAllocSiteRemovable(), isBroadcastShuffle(), isCallPromotable(), llvm::Constant::isConstantUsed(), isContiguous(), llvm::Function::isDefTriviallyDead(), isEmptyFunction(), isEphemeralValueOf(), llvm::RecurrenceDescriptor::isFirstOrderRecurrence(), isFuncOrArgAttr(), isFuncOrderCorrect(), isGOTEquivalentCandidate(), isHighCostExpansion(), isIgnorableInst(), isKnownNonNullFromDominatingCondition(), isLoadInvariantInLoop(), isLoopIncrement(), isNotUsedOrFreeInLoop(), isOnlyUsedInComparisonWithZero(), isOnlyUsedInEntryBlock(), isOnlyUsedInEqualityComparison(), llvm::isOnlyUsedInZeroEqualityComparison(), llvm::isOverflowIntrinsicNoWrap(), isPointerValueDeadOnEntryToFunction(), isProfitableChain(), isSafeAndProfitableToSinkLoad(), llvm::TargetFrameLowering::isSafeForNoCSROpt(), isSafePHIToSpeculate(), isSafeSelectToSpeculate(), isSafeSROAGEP(), llvm::isSafeToDestroyConstant(), isTargetConstant(), isUsedByLifetimeMarker(), isUsedOutsideOfDefiningBlock(), isValidCandidateForColdCC(), isVectorReductionOp(), LoadUsesSimpleEnoughForHeapSRA(), llvm::log2(), llvm::LowerDbgDeclare(), makeAllConstantUsesInstructions(), mapBinOpcode(), mapWasmLandingPadIndex(), MarkBlocksLiveIn(), mayLoopAccessLocation(), mergeInlinedArrayAllocas(), moveSpillUsesAfterCoroBegin(), moveUp(), llvm::InnerLoopVectorizer::needsScalarInduction(), negateICmpIfUsedByBranchOrSelectOnly(), NegateValue(), okayForPHIOfOps(), OnlyUsedBy(), llvm::onlyUsedByLifetimeMarkers(), optimizeDoubleFP(), performMaskedAtomicOp(), llvm::AlignmentFromAssumptionsPass::processAssumption(), processUGT_ADDCST_ADD(), processUMulZExtIdiom(), llvm::promoteLoopAccessesToScalars(), promoteSingleBlockAlloca(), PushDefUseChildren(), pushIVUsers(), PushLoopPHIs(), relocationViaAlloca(), llvm::safestack::StackColoring::removeAllMarkers(), RemoveInstInputs(), RemoveNestAttribute(), replaceAndRecursivelySimplifyImpl(), llvm::coro::replaceCoroFree(), replaceExtractElements(), ReplaceUsesOfWith(), reportMayClobberedLoad(), rewriteNonInstructionUses(), runImpl(), llvm::StackProtector::runOnFunction(), setCannotDuplicate(), shouldBeDeferred(), llvm::AArch64TTIImpl::shouldConsiderAddressTypePromotion(), simplifyAllocaArraySize(), simplifyAndDCEInstruction(), simplifyRelocatesOffABase(), sinkAndCmp0Expression(), AllocaSlices::SliceBuilder::SliceBuilder(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), llvm::SparseSolver< LatticeKey, LatticeVal, KeyInfo >::Solve(), splitGlobal(), swapMayExposeCSEOpportunities(), SwitchToLookupTable(), truncateIVUse(), tryPromoteAllocaToVector(), tryToElideArgumentCopy(), TryToShrinkGlobalToBoolean(), tryUnmergingGEPsAcrossIndirectBr(), usedInGlobalVarDef(), usedInOneFunc(), useFuncSeen(), ValueIsOnlyUsedLocallyOrStoredToOneGlobal(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::MemorySSA::verifyDomination(), llvm::LoopVersioning::versionLoop(), llvm::sroa::AllocaSliceRewriter::visit(), llvm::InstCombiner::visitShuffleVectorInst(), and ~Value().
|
inline |
Definition at line 404 of file Value.h.
References assertModuleIsMaterialized(), and materialized_users().
|
inline |
Definition at line 355 of file Value.h.
References assertModuleIsMaterialized(), and materialized_uses().
Referenced by addIntrinsicToSummary(), llvm::IVUsers::AddUsersImpl(), AllUsesDominatedByBlock(), analyzeGlobalAux(), areFunctionArgsABICompatible(), canFoldInAddressingMode(), canFoldIVIncExpr(), llvm::createDeadArgHackingPass(), determinePointerReadAttrs(), llvm::GVNExpression::Expression::dump(), llvm::detail::PtrUseVisitorBase::enqueueUsers(), FindAllMemoryUses(), findCallsAtConstantOffset(), llvm::findDevirtualizableCallsForTypeCheckedLoad(), llvm::findDevirtualizableCallsForTypeTest(), findLoadCallsAtConstantOffset(), findProfitablePHIs(), FindUses(), llvm::formLCSSAForInstructions(), llvm::StackSafetyInfo::FunctionInfo::FunctionInfo(), FunctionNumber(), GetCaseResults(), llvm::MemoryDependenceResults::getInvariantGroupPointerDependency(), llvm::GlobalsAAResult::getModRefBehavior(), getNarrowIntrinsic(), getParentPad(), getRetComponentType(), getStartOrEndSlot(), llvm::Function::hasAddressTaken(), hasSameExtUse(), hasUsesOutsideLoop(), isKnownTypeIdMember(), isSafeAndProfitableToSpeculateAroundPHI(), isSafeToPromoteArgument(), isSafeToSpeculatePHIUsers(), IsStoredObjCPointer(), llvm::Instruction::isUsedOutsideOfBlock(), llvm::AArch64TargetLowering::isZExtFree(), llvm::PredicateInfoClasses::ValueDFS_Compare::localComesBefore(), llvm::LowerDbgDeclare(), llvm::LoopInfo::movementPreservesLCSSAForm(), NewGVN::ValueDFS::operator<(), operator<<(), llvm::PointerMayBeCaptured(), predictValueUseListOrderImpl(), llvm::ValueEnumerator::print(), promoteArguments(), PropagateConstantsIntoArguments(), PushArgMD(), sinkInstruction(), transformToIndexedCompare(), truncateIVUse(), llvm::JumpThreadingPass::TryToUnfoldSelectInCurrBB(), llvm::MemorySSA::verifyDomination(), llvm::sroa::AllocaSliceRewriter::visit(), and visitPHIUsersAndDepsInPostOrder().
|
inline |
Definition at line 359 of file Value.h.
References assertModuleIsMaterialized(), and materialized_uses().
|
friend |
|
friend |
|
protected |
Definition at line 121 of file Value.h.
Referenced by llvm::User::getDescriptor(), llvm::CallBase::hasDescriptor(), llvm::User::operator delete(), and llvm::User::operator new().
|
protected |
Definition at line 120 of file Value.h.
Referenced by llvm::User::allocHungoffUses(), llvm::User::getDescriptor(), llvm::User::getOperandList(), llvm::User::growHungoffUses(), llvm::User::Op(), llvm::User::operator delete(), llvm::User::operator new(), llvm::User::setNumHungOffUseOperands(), and llvm::User::User().
|
protected |
Definition at line 119 of file Value.h.
Referenced by getValueName(), hasName(), and setValueName().
|
protected |
Definition at line 118 of file Value.h.
Referenced by llvm::ValueAsMetadata::get(), llvm::ValueAsMetadata::handleRAUW(), and isUsedByMetadata().
The maximum alignment for instructions.
This is the greatest alignment value supported by load, store, and alloca instructions, and global values.
Definition at line 595 of file Value.h.
Referenced by getAttrFromCode().
Definition at line 596 of file Value.h.
Referenced by emitSignedInt64(), llvm::AlignmentFromAssumptionsPass::extractAlignmentInfo(), forEachUser(), llvm::getOrEnforceKnownAlignment(), getParentPad(), isContiguous(), parseOptionalLinkageAux(), llvm::GlobalObject::setAlignment(), llvm::AllocaInst::setAlignment(), llvm::LoadInst::setAlignment(), and llvm::StoreInst::setAlignment().
|
protected |
Definition at line 115 of file Value.h.
Referenced by llvm::User::getNumOperands(), llvm::User::getOperand(), llvm::User::getOperandUse(), llvm::User::Op(), llvm::User::op_end(), llvm::User::operator delete(), llvm::User::operator new(), llvm::User::setGlobalVariableNumOperands(), llvm::User::setNumHungOffUseOperands(), llvm::User::setOperand(), and llvm::User::User().
Hold subclass data that can be dropped.
This member is similar to SubclassData, however it is for holding information which may be used to aid optimization, but which may be cleared to zero without affecting conservative interpretation.
Definition at line 91 of file Value.h.
Referenced by llvm::SelectInst::areInvalidOperands(), llvm::BinaryConstantExpr::BinaryConstantExpr(), clearSubclassOptionalData(), llvm::Instruction::clone(), llvm::GetElementPtrConstantExpr::Create(), llvm::ConstantExprKeyType::create(), llvm::CallInst::Create(), llvm::InvokeInst::Create(), llvm::CallInst::CreateFree(), llvm::FenceInst::FenceInst(), llvm::ConstantExpr::getAsInstruction(), llvm::FPMathOperator::getFastMathFlags(), llvm::GEPOperator::getInRangeIndex(), llvm::InvokeInst::getLandingPadInst(), getRawSubclassOptionalData(), llvm::ConstantExpr::getWithOperands(), llvm::FPMathOperator::hasAllowContract(), llvm::FPMathOperator::hasAllowReassoc(), llvm::FPMathOperator::hasAllowReciprocal(), llvm::FPMathOperator::hasApproxFunc(), llvm::FPMathOperator::hasNoInfs(), llvm::FPMathOperator::hasNoNaNs(), llvm::OverflowingBinaryOperator::hasNoSignedWrap(), llvm::FPMathOperator::hasNoSignedZeros(), llvm::OverflowingBinaryOperator::hasNoUnsignedWrap(), hasSameSubclassOptionalData(), llvm::ShuffleVectorInst::isConcat(), llvm::PossiblyExactOperator::isExact(), llvm::FPMathOperator::isFast(), llvm::Instruction::isIdenticalTo(), llvm::CmpInst::isImpliedFalseByMatchingCmp(), llvm::GEPOperator::isInBounds(), llvm::CallBase::populateBundleOperandInfos(), llvm::SwitchInst::removeCase(), and llvm::UnreachableInst::UnreachableInst().