LLVM API Documentation
LLVM Value Representation. More...
#include <Value.h>
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.
typedef use_iterator_impl<const Use> llvm::Value::const_use_iterator |
typedef user_iterator_impl<const User> llvm::Value::const_user_iterator |
typedef use_iterator_impl<Use> llvm::Value::use_iterator |
typedef user_iterator_impl<User> llvm::Value::user_iterator |
enum llvm::Value::ValueTy |
An enumeration for keeping track of the concrete subclass of Value that is actually instantiated. Values of this enumeration are kept in the Value classes SubclassID field. They are used for concrete type identification.
Definition at line 46 of file Value.cpp.
References BasicBlockVal, llvm::Call, ConstantLastVal, llvm::Type::isFirstClassType(), llvm::Type::isStructTy(), and llvm::Type::isVoidTy().
Referenced by ValuesOverlap().
Value::~Value | ( | ) | [virtual] |
Definition at line 61 of file Value.cpp.
References llvm::dbgs(), llvm::StringMapEntry< ValueTy >::Destroy(), getName(), I, MDStringVal, llvm::LeakDetector::removeGarbageObject(), use_begin(), use_empty(), use_end(), and llvm::ValueHandleBase::ValueIsDeleted().
void llvm::Value::addUse | ( | Use & | U | ) | [inline] |
addUse - This method should only be used by the Use class.
Definition at line 301 of file Value.h.
Referenced by llvm::Use::set(), and llvm::Use::swap().
void llvm::Value::clearSubclassOptionalData | ( | ) | [inline] |
clearSubclassOptionalData - Clear the optional flags contained in this value.
Definition at line 359 of file Value.h.
References SubclassOptionalData.
Referenced by ClearSubclassDataAfterReassociation().
Value * Value::DoPHITranslation | ( | const BasicBlock * | CurBB, |
const BasicBlock * | PredBB | ||
) |
DoPHITranslation - 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 607 of file Value.cpp.
References llvm::dyn_cast(), llvm::PHINode::getIncomingValueForBlock(), and llvm::Instruction::getParent().
Referenced by DoPHITranslation().
const Value* llvm::Value::DoPHITranslation | ( | const BasicBlock * | CurBB, |
const BasicBlock * | PredBB | ||
) | const [inline] |
Definition at line 441 of file Value.h.
References DoPHITranslation().
void Value::dump | ( | ) | const |
dump - Support for debugging, callable in GDB: V->dump()
Definition at line 2556 of file AsmWriter.cpp.
References llvm::dbgs(), and print().
Referenced by checkInterfaceFunction(), llvm::LexicalScope::dump(), llvm::dumpBlock(), llvm::dumpInst(), llvm::ExecutionEngine::InitializeMemory(), llvm::ValueEnumerator::print(), tryPromoteAllocaToVector(), and WriteConstants().
LLVMContext & Value::getContext | ( | ) | const |
All values hold a context through their type.
Reimplemented in llvm::Function, and llvm::BasicBlock.
Definition at line 615 of file Value.cpp.
References llvm::Type::getContext().
Referenced by llvm::CallInst::addAttribute(), llvm::InvokeInst::addAttribute(), AddOperand(), AddWithOverflow(), llvm::SelectInst::areInvalidOperands(), BitCastConstantVector(), calculateVectorIndex(), CanShareConstantPoolEntry(), changeToUnreachable(), llvm::FenceInst::clone_impl(), llvm::UnreachableInst::clone_impl(), CollectInsertionElements(), CollectShuffleElements(), CollectSingleShuffleElements(), llvm::ComputeMultiple(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), llvm::MDNode::concatenate(), llvm::ConstantFoldBinaryInstruction(), llvm::ConstantFoldCastInstruction(), llvm::ConstantFoldCompareInstruction(), llvm::ConstantFoldInsertElementInstruction(), llvm::ConstantFoldLoadFromConstPtr(), llvm::ConstantFoldShuffleVectorInstruction(), llvm::SelectionDAGBuilder::CopyValueToVirtualRegister(), llvm::ARMConstantPoolConstant::Create(), CreatePrologue(), decomposeBitTestICmp(), llvm::MDNode::deleteTemporary(), llvm::ConstantAggregateZero::destroyConstant(), llvm::ConstantPointerNull::destroyConstant(), llvm::ConstantDataSequential::destroyConstant(), llvm::UndefValue::destroyConstant(), llvm::Instruction::dropUnknownMetadata(), ExtractConstantBytes(), llvm::FindAllocaDbgDeclare(), FitsInFPType(), FoldBitCast(), llvm::FoldBranchToCommonDest(), llvm::InstCombiner::FoldCmpLoadFromIndexedGlobal(), llvm::InstCombiner::FoldICmpAddOpCst(), FoldReinterpretLoadFromConstPtr(), llvm::InstCombiner::FoldShiftByConstant(), GatherConstantCompares(), genLoopLimit(), llvm::DebugLoc::get(), llvm::ConstantExpr::get(), llvm::DebugLoc::getAsMDNode(), llvm::LazyValueInfo::getConstant(), llvm::LazyValueInfo::getConstantOnEdge(), getEdgeValueLocal(), llvm::ConstantDataSequential::getElementAsConstant(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantExpr::getExtractValue(), llvm::ConstantExpr::getFCmp(), getFCmpValue(), llvm::ConstantExpr::getGetElementPtr(), llvm::ConstantExpr::getICmp(), llvm::ConstantExpr::getInsertElement(), llvm::ConstantExpr::getInsertValue(), llvm::MDNode::getMostGenericRange(), llvm::MDNode::getMostGenericTBAA(), llvm::getObjectSize(), llvm::FastISel::getRegForValue(), llvm::ConstantExpr::getSelect(), GetShiftedValue(), llvm::ConstantDataVector::getSplat(), llvm::ConstantStruct::getTypeForElements(), IdxCompare(), llvm::InlineFunction(), llvm::DIBuilder::insertDbgValueIntrinsic(), llvm::DIBuilder::insertDeclare(), InstCombineStoreToCast(), llvm::MDNode::intersect(), llvm::isBytewiseValue(), llvm::CastInst::isNoopCast(), LLVMAddAttribute(), LLVMRemoveAttribute(), LLVMSetParamAlignment(), LookThroughFPExtensions(), nvptx::LowerConstant(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::MapValue(), llvm::MergeBasicBlockIntoOnlyPred(), OptimizeGlobalAddressOfMalloc(), OptimizeNoopCopyExpression(), OptimizeVectorResize(), PerformHeapAllocSRoA(), ProcessUGT_ADDCST_ADD(), ReadDataFromGlobal(), llvm::CallInst::removeAttribute(), llvm::InvokeInst::removeAttribute(), llvm::replaceDbgDeclareForAlloca(), ReplaceFPIntrinsicWithCall(), llvm::ConstantArray::replaceUsesOfWithOnConstant(), llvm::ConstantStruct::replaceUsesOfWithOnConstant(), llvm::ConstantVector::replaceUsesOfWithOnConstant(), llvm::BlockAddress::replaceUsesOfWithOnConstant(), llvm::ConstantExpr::replaceUsesOfWithOnConstant(), llvm::FastISel::selectBinaryOp(), llvm::FastISel::selectFNeg(), llvm::Instruction::setMetadata(), setName(), setUsedInitializer(), SimplifyCondBranchToCondBranch(), SimplifyICmpInst(), SimplifyTerminatorOnSelect(), llvm::SplitCriticalEdge(), SRAGlobal(), stripAndComputeConstantOffsets(), SubWithOverflow(), TryToShrinkGlobalToBoolean(), TryToSimplifyUncondBranchWithICmpInIt(), TurnSwitchRangeIntoICmp(), llvm::UpgradeBitCastExpr(), llvm::UpgradeBitCastInst(), upgradeGlobalArray(), llvm::UpgradeInstWithTBAATag(), llvm::UpgradeIntrinsicCall(), llvm::ValueHandleBase::ValueIsDeleted(), llvm::ValueHandleBase::ValueIsRAUWd(), llvm::InstCombiner::visitAllocaInst(), llvm::InstCombiner::visitAllocSite(), llvm::InstCombiner::visitBitCast(), llvm::InstCombiner::visitCallInst(), llvm::InstCombiner::visitExtractElementInst(), llvm::InstCombiner::visitFree(), llvm::InstCombiner::visitICmpInst(), llvm::InstCombiner::visitICmpInstWithInstAndIntCst(), llvm::InstCombiner::visitIntToPtr(), llvm::InstCombiner::visitPtrToInt(), llvm::Interpreter::visitReturnInst(), llvm::InstCombiner::visitShuffleVectorInst(), and WriteMDNode().
StringRef Value::getName | ( | ) | const |
getName() - Return a constant reference to the value's name. This is cheap and guaranteed to return the same reference as long as the value is not modified.
Definition at line 168 of file Value.cpp.
References llvm::StringMapEntry< ValueTy >::getKey().
Referenced by AddAliasScopeMetadata(), llvm::ExecutionEngine::addGlobalMapping(), llvm::X86FrameLowering::adjustForHiPEPrologue(), assureFPCallStub(), llvm::MDString::begin(), llvm::Interpreter::callExternalFunction(), llvm::canConstantFoldCallTo(), CanPropagatePredecessorsForPHIs(), llvm::CloneBasicBlock(), llvm::CloneFunction(), llvm::InstCombiner::commonShiftTransforms(), ConnectProlog(), llvm::ConstantFoldCall(), ConstructSSAForLoadSet(), copyGVAttributes(), createFPFnStub(), createReplacementInstr(), llvm::DemotePHIToStack(), llvm::DemoteRegToStack(), llvm::DISubprogram::describes(), llvm::InstCombiner::DoOneIteration(), llvm::dumpBlock(), llvm::EmitGEPOffset(), llvm::ExecutionEngine::emitGlobals(), llvm::AsmPrinter::EmitSpecialLLVMGlobal(), llvm::MDString::end(), EvaluateStaticConstructor(), llvm::ExtractTypeInfo(), fixupSubprogramName(), llvm::SimplifyFortifiedLibCalls::fold(), llvm::InstCombiner::FoldAndOfICmps(), FoldBlockIntoPredecessor(), llvm::FoldBranchToCommonDest(), FoldCondBranchOnPHI(), llvm::InstCombiner::FoldICmpShrCst(), FoldOperationIntoSelectOperand(), llvm::InstCombiner::FoldOrOfICmps(), llvm::InstCombiner::FoldSelectOpOp(), llvm::InstCombiner::FoldShiftByConstant(), FoldTwoEntryPHINode(), forceRenaming(), getAllocationData(), llvm::bfi_detail::getBlockName(), llvm::DOTGraphTraits< const Function * >::getCompleteNodeLabel(), llvm::TargetLoweringObjectFileMachO::getExplicitSectionGlobal(), llvm::MachineBasicBlock::getFullName(), llvm::objcarc::GetFunctionClass(), llvm::LibCallInfo::getFunctionInfo(), llvm::DOTGraphTraits< const Function * >::getGraphName(), llvm::DOTGraphTraits< BlockFrequencyInfo * >::getGraphName(), llvm::InlineCostAnalysis::getInlineCost(), llvm::getInst(), llvm::getIntrinsicIDForCall(), llvm::MDString::getLength(), llvm::MachineFunction::getName(), llvm::Mangler::getNameWithPrefix(), llvm::DOTGraphTraits< BlockFrequencyInfo * >::getNodeLabel(), llvm::MCJIT::getPointerToFunction(), llvm::getSamplerName(), sampleprof::SampleProfileReader::getSamplesFor(), llvm::DOTGraphTraits< const Function * >::getSimpleNodeLabel(), llvm::MDString::getString(), llvm::getSurfaceName(), llvm::object::IRObjectFile::getSymbolFlags(), llvm::getTextureName(), GlobalWasGeneratedByAsan(), HandleByValArgument(), HandleCallsInBlockInlinedThroughInvoke(), hasMemoryWrite(), HoistThenElseCodeToIf(), INITIALIZE_PASS(), INITIALIZE_TM_PASS(), llvm::InlineFunction(), llvm::InsertPreheaderForLoop(), insertUniqueBackedgeBlock(), InstCombineLoadCast(), InstCombineStoreToCast(), llvm::isFreeCall(), llvm::Function::isIntrinsic(), isIntrinsicInline(), isMemsetPattern16(), isReportingError(), llvm::LoadAndStorePromoter::LoadAndStorePromoter(), lookupFunction(), llvm::AMDGPUMCInstLower::lower(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::IntrinsicLowering::LowerToByteSwap(), NegateValue(), llvm::DiagnosticPrinterRawOStream::operator<<(), llvm::LibCallSimplifier::optimizeCall(), OptimizeGlobalAddressOfMalloc(), PerformHeapAllocSRoA(), llvm::ValueEnumerator::print(), llvm::Trace::print(), llvm::CallGraph::print(), llvm::SparseSolver::Print(), llvm::ARMConstantPoolConstant::print(), llvm::CallGraphNode::print(), llvm::AssemblyWriter::printBasicBlock(), llvm::BranchProbabilityInfo::printEdgeProbability(), PrintLLVMName(), llvm::object::IRObjectFile::printSymbolName(), processInstruction(), ProcessUGT_ADDCST_ADD(), RecognizePersonality(), llvm::LazyCallGraph::SCC::removeInterSCCEdge(), ReplaceCallWith(), ReplaceUsesOfMallocWithGlobal(), RewriteHeapSROALoadUser(), RewriteUsesOfClonedInstructions(), llvm::DOTGraphTraitsViewer< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnFunction(), llvm::BranchProbabilityInfo::runOnFunction(), llvm::DOTGraphTraitsPrinter< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnFunction(), llvm::RGPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), llvm::FPPassManager::runOnFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::MipsOs16::runOnModule(), llvm::Inliner::runOnSCC(), llvm::VLIWMachineScheduler::schedule(), llvm::FastISel::selectInstruction(), llvm::BranchProbabilityInfo::setEdgeWeight(), setName(), shouldInternalize(), SimplifyCondBranchToCondBranch(), simplifyOneLoop(), SinkThenElseCodeToEnd(), llvm::LoopPass::skipOptnoneFunction(), llvm::FunctionPass::skipOptnoneFunction(), llvm::BasicBlockPass::skipOptnoneFunction(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), speculatePHINodeLoads(), speculateSelectInstLoads(), SpeculativelyExecuteBB(), llvm::SplitBlock(), llvm::SplitBlockPredecessors(), llvm::SplitCriticalEdge(), llvm::SplitLandingPadPredecessors(), SRAGlobal(), StripSymtab(), tryFactorization(), tryToMakeAllocaBePromotable(), TryToOptimizeStoreOfMallocToGlobal(), TryToShrinkGlobalToBoolean(), TurnSwitchRangeIntoICmp(), llvm::UnrollLoop(), UpdatePHINodes(), llvm::UpgradeIntrinsicCall(), UpgradeIntrinsicFunction1(), UpgradeSSE41Function(), UpgradeX86IntrinsicsWith8BitMask(), usedInGlobalVarDef(), llvm::ValueHandleBase::ValueIsDeleted(), llvm::ValueHandleBase::ValueIsRAUWd(), llvm::Function::viewCFGOnly(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitAllocaInst(), llvm::InstCombiner::visitAnd(), llvm::InstCombiner::visitExtractElementInst(), llvm::InstCombiner::visitFCmpInst(), llvm::InstCombiner::visitFPTrunc(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::InstCombiner::visitICmpInst(), llvm::InstCombiner::visitICmpInstWithCastAndCast(), llvm::InstCombiner::visitICmpInstWithInstAndIntCst(), llvm::InstCombiner::visitMul(), llvm::InstCombiner::visitOr(), llvm::InstCombiner::visitSDiv(), llvm::InstCombiner::visitSelectInst(), llvm::InstCombiner::visitSExt(), llvm::InstCombiner::visitSRem(), llvm::InstCombiner::visitTrunc(), llvm::InstCombiner::visitXor(), llvm::InstCombiner::visitZExt(), and ~Value().
unsigned Value::getNumUses | ( | ) | const |
getNumUses - 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.
getNumUses - This method computes the number of uses of this Value. This is a linear time operation. Use hasOneUse or hasNUses to check for specific values.
Definition at line 140 of file Value.cpp.
References use_begin(), and use_end().
unsigned llvm::Value::getRawSubclassOptionalData | ( | ) | const [inline] |
getRawSubclassOptionalData - Return the raw optional flags value contained in this value. This should only be used when testing two Values for equivalence.
Definition at line 353 of file Value.h.
References SubclassOptionalData.
Referenced by llvm::ConstantExprKeyType::operator==().
unsigned short llvm::Value::getSubclassDataFromValue | ( | ) | const [inline, protected] |
Definition at line 491 of file Value.h.
Referenced by llvm::MDNode::deleteTemporary(), llvm::Function::getCallingConv(), llvm::MDNode::getTemporary(), llvm::BasicBlock::hasAddressTaken(), llvm::Function::hasPrefixData(), llvm::MDNode::isFunctionLocal(), llvm::Function::setCallingConv(), and llvm::Function::setPrefixData().
Type* llvm::Value::getType | ( | ) | const [inline] |
All values are typed, get the type of this value.
Reimplemented in llvm::ShuffleVectorInst, llvm::InsertElementInst, llvm::GetElementPtrInst, llvm::ConstantDataVector, llvm::ConstantDataArray, llvm::ConstantDataSequential, llvm::ConstantPointerNull, llvm::ConstantVector, llvm::ConstantStruct, llvm::ConstantArray, llvm::GlobalValue, llvm::ConstantInt, llvm::AllocaInst, and llvm::InlineAsm.
Definition at line 208 of file Value.h.
Referenced by llvm::AliasSetTracker::add(), llvm::SSAUpdater::AddAvailableValue(), llvm::PHINode::addIncoming(), llvm::AddOne(), llvm::IVUsers::AddUsersImpl(), AddWithOverflow(), AnalyzeLoadFromClobberingLoad(), AnalyzeLoadFromClobberingStore(), AppendTypeSuffix(), llvm::SelectInst::areInvalidOperands(), BitCastConstantVector(), BuildConstantFromSCEV(), buildMultiplyTree(), BuildNew(), BuildSubAggregate(), CanCoerceMustAliasedValueToLoad(), CanEvaluateSExtd(), CanEvaluateShifted(), CanEvaluateTruncated(), CanEvaluateZExtd(), llvm::FastISel::canFoldAddIntoGEP(), canFoldZeroCheckIntoBranch(), CanShareConstantPoolEntry(), canTrapImpl(), llvm::CastInst::castIsValid(), llvm::CastToCStr(), CheapToScalarize(), llvm::checkBinaryFloatSignature(), llvm::checkUnaryFloatSignature(), llvm::FPMathOperator::classof(), llvm::VAArgInst::clone_impl(), llvm::TruncInst::clone_impl(), llvm::ZExtInst::clone_impl(), llvm::SExtInst::clone_impl(), llvm::FPTruncInst::clone_impl(), llvm::FPExtInst::clone_impl(), llvm::UIToFPInst::clone_impl(), llvm::SIToFPInst::clone_impl(), llvm::FPToUIInst::clone_impl(), llvm::FPToSIInst::clone_impl(), llvm::IntToPtrInst::clone_impl(), llvm::PtrToIntInst::clone_impl(), llvm::BitCastInst::clone_impl(), llvm::AddrSpaceCastInst::clone_impl(), llvm::CloneAndPruneFunctionInto(), CoerceAvailableValueToLoadType(), CollectBSwapParts(), CollectInsertionElements(), CollectShuffleElements(), CollectSingleShuffleElements(), collectUsesWithPtrTypes(), llvm::InstCombiner::commonCastTransforms(), llvm::InstCombiner::commonIDivTransforms(), llvm::InstCombiner::commonPointerCastTransforms(), llvm::InstCombiner::commonShiftTransforms(), llvm::ObjectSizeOffsetVisitor::compute(), llvm::ObjectSizeOffsetEvaluator::compute(), computeKnownBits(), llvm::ComputeMultiple(), ComputeNumSignBits(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), computePointerICmp(), ComputeSignBit(), llvm::ComputeUsesVAFloatArgument(), ConnectProlog(), ConstantFold(), llvm::ConstantFoldBinaryInstruction(), llvm::ConstantFoldCastInstruction(), llvm::ConstantFoldCompareInstOperands(), llvm::ConstantFoldCompareInstruction(), ConstantFoldConstantExpressionImpl(), llvm::ConstantFoldExtractElementInstruction(), ConstantFoldGetElementPtrImpl(), llvm::ConstantFoldInsertElementInstruction(), llvm::ConstantFoldInsertValueInstruction(), llvm::ConstantFoldInstOperands(), llvm::ConstantFoldInstruction(), llvm::ConstantFoldLoadFromConstPtr(), ConstantFoldLoadThroughBitcast(), llvm::ConstantFoldSelectInstruction(), llvm::ConstantFoldShuffleVectorInstruction(), ConstructSSAForLoadSet(), convertMemSetToLoop(), ConvertShiftToMul(), convertTransferToLoop(), convertValue(), llvm::SelectionDAGBuilder::CopyToExportRegsIfNeeded(), llvm::SelectionDAGBuilder::CopyValueToVirtualRegister(), llvm::BinaryOperator::Create(), CreateAdd(), llvm::IRBuilder< true, TargetFolder >::CreateAnd(), createAndInstr(), llvm::IRBuilder< true, TargetFolder >::CreateAShr(), llvm::TargetFolder::CreateCast(), llvm::IRBuilder< true, TargetFolder >::CreateCast(), createCast(), llvm::IRBuilder< true, TargetFolder >::CreateExtractInteger(), llvm::BinaryOperator::CreateFNeg(), llvm::TargetFolder::CreateFPCast(), llvm::CastInst::CreateFPCast(), createFree(), llvm::IRBuilderBase::CreateGlobalString(), llvm::DwarfCompileUnit::createGlobalVariableDIE(), llvm::TargetFolder::CreateIntCast(), llvm::IRBuilder< true, TargetFolder >::CreateIntCast(), llvm::CastInst::CreateIntegerCast(), llvm::IRBuilder< true, TargetFolder >::CreateIsNotNull(), llvm::IRBuilder< true, TargetFolder >::CreateIsNull(), llvm::IRBuilderBase::CreateLifetimeEnd(), llvm::IRBuilderBase::CreateLifetimeStart(), llvm::IRBuilder< true, TargetFolder >::CreateLShr(), createMalloc(), llvm::IRBuilderBase::CreateMemCpy(), llvm::IRBuilderBase::CreateMemMove(), llvm::IRBuilderBase::CreateMemSet(), CreateMul(), llvm::BinaryOperator::CreateNeg(), CreateNeg(), llvm::BinaryOperator::CreateNot(), llvm::BinaryOperator::CreateNSWNeg(), llvm::BinaryOperator::CreateNUWNeg(), llvm::IRBuilder< true, TargetFolder >::CreateOr(), createPHIsForSplitLoopExit(), llvm::TargetFolder::CreatePointerBitCastOrAddrSpaceCast(), llvm::CastInst::CreatePointerBitCastOrAddrSpaceCast(), llvm::IRBuilder< true, TargetFolder >::CreatePointerBitCastOrAddrSpaceCast(), llvm::TargetFolder::CreatePointerCast(), llvm::CastInst::CreatePointerCast(), llvm::IRBuilder< true, TargetFolder >::CreatePointerCast(), createPrivateGlobalForString(), createPrivateNonConstGlobalForString(), llvm::IRBuilder< true, TargetFolder >::CreatePtrDiff(), createReplacementInstr(), llvm::TargetFolder::CreateSExtOrBitCast(), llvm::CastInst::CreateSExtOrBitCast(), llvm::IRBuilder< true, TargetFolder >::CreateSExtOrBitCast(), llvm::IRBuilder< true, TargetFolder >::CreateSExtOrTrunc(), llvm::IRBuilder< true, TargetFolder >::CreateShl(), llvm::TargetFolder::CreateTruncOrBitCast(), llvm::CastInst::CreateTruncOrBitCast(), llvm::IRBuilder< true, TargetFolder >::CreateTruncOrBitCast(), llvm::IRBuilder< true, TargetFolder >::CreateVectorSplat(), llvm::IRBuilder< true, TargetFolder >::CreateXor(), llvm::TargetFolder::CreateZExtOrBitCast(), llvm::CastInst::CreateZExtOrBitCast(), llvm::IRBuilder< true, TargetFolder >::CreateZExtOrBitCast(), llvm::IRBuilder< true, TargetFolder >::CreateZExtOrTrunc(), CvtFDivConstToReciprocal(), DecomposeGEPExpression(), DecomposeSimpleLinearExpr(), llvm::DeleteDeadBlock(), DeleteInstructionInBlock(), llvm::DemotePHIToStack(), llvm::DemoteRegToStack(), llvm::ConstantAggregateZero::destroyConstant(), llvm::ConstantExpr::destroyConstant(), llvm::UndefValue::destroyConstant(), determinePointerReadAttrs(), llvm::InstCombiner::DoOneIteration(), EliminateDeadSwitchCases(), llvm::EmitBinaryFloatFnCall(), emitDebugValueComment(), llvm::EmitFPutC(), llvm::EmitFPutS(), llvm::EmitFWrite(), llvm::EmitGEPOffset(), llvm::AsmPrinter::EmitGlobalConstant(), emitGlobalConstantFP(), emitGlobalConstantImpl(), emitGlobalConstantStruct(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), llvm::EmitStrNCpy(), llvm::EmitUnaryFloatFnCall(), llvm::ARMAsmPrinter::EmitXXStructor(), EvaluateExpression(), evaluateFCmpRelation(), EvaluateGEPOffsetExpression(), evaluateICmpRelation(), EvaluateStoreInto(), llvm::expandDivision(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), llvm::ARMTargetLowering::ExpandInlineAsm(), llvm::expandRemainder(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), ExtractConstantBytes(), extractInteger(), extractVector(), llvm::FCmpInst::FCmpInst(), llvm::FindAvailableLoadedValue(), findCommonType(), llvm::FindInsertedValue(), FindLIVLoopCondition(), FindLoopCounter(), FindScalarElement(), fixupFPReturnAndCall(), llvm::InstCombiner::FoldAndOfFCmps(), llvm::InstCombiner::FoldAndOfICmps(), FoldBitCast(), llvm::InstCombiner::FoldCmpLoadFromIndexedGlobal(), foldConstantCastPair(), llvm::InstCombiner::FoldFCmp_IntToFP_Cst(), llvm::InstCombiner::FoldGEPICmp(), llvm::InstCombiner::FoldICmpCstShrCst(), llvm::InstCombiner::FoldICmpShrCst(), foldLogOpOfMaskedICmps(), foldLogOpOfMaskedICmpsHelper(), FoldOperationIntoSelectOperand(), llvm::InstCombiner::FoldOrOfFCmps(), FoldReinterpretLoadFromConstPtr(), foldSelectICmpAnd(), foldSelectICmpAndOr(), llvm::InstCombiner::FoldSelectOpOp(), llvm::InstCombiner::FoldShiftByConstant(), FoldTwoEntryPHINode(), foldUDivNegCst(), foldUDivPow2Cst(), foldUDivShl(), generateSignedDivisionCode(), generateSignedRemainderCode(), generateUnsignedDivisionCode(), genLoopLimit(), llvm::gep_type_begin(), llvm::ConstantVector::get(), llvm::ConstantExpr::get(), getAccessType(), llvm::IntToPtrInst::getAddressSpace(), llvm::ConstantExpr::getAddrSpaceCast(), getAdjustedPtr(), llvm::Constant::getAggregateElement(), getAISize(), llvm::MemIntrinsic::getAlignmentType(), getArrayElements(), llvm::ConstantExpr::getAsInstruction(), getBinOpsForFactorization(), llvm::ConstantExpr::getBitCast(), llvm::CastInst::getCastOpcode(), getCodeAddrSpace(), llvm::ConstantExpr::getCompare(), GetCompareTy(), GetConstantInt(), llvm::SelectionDAG::getConstantPool(), llvm::ExecutionEngine::getConstantValue(), llvm::BasicBlock::getContext(), llvm::Argument::getDereferenceableBytes(), llvm::MemIntrinsic::getDestAddressSpace(), getEdgeValueLocal(), llvm::ConstantAggregateZero::getElementValue(), llvm::UndefValue::getElementValue(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantExpr::getExtractValue(), llvm::ConstantExpr::getFCmp(), llvm::ConstantExpr::getFNeg(), llvm::ConstantExpr::getFPCast(), llvm::ConstantExpr::getFPExtend(), llvm::ConstantExpr::getFPToSI(), llvm::ConstantExpr::getFPToUI(), llvm::ConstantExpr::getFPTrunc(), llvm::objcarc::GetFunctionClass(), llvm::GetElementPtrInst::getGEPReturnType(), llvm::ConstantExpr::getGetElementPtr(), llvm::ConstantExpr::getICmp(), llvm::getICmpValue(), getIdentityValue(), llvm::ConstantExpr::getInsertElement(), llvm::ConstantExpr::getInsertValue(), llvm::ConstantExpr::getIntegerCast(), llvm::ConstantExpr::getIntToPtr(), llvm::SCEVExpander::getIVIncOperand(), llvm::TargetLoweringObjectFile::getKindForGlobal(), GetLinearExpression(), llvm::MemoryDependenceAnalysis::getLoadLoadClobberFullWidthSize(), GetLoadValueForLoad(), llvm::AliasAnalysis::getLocation(), getLogBase2Vector(), llvm::getMallocType(), GetMemInstValueForLoad(), getMemSetPatternValue(), getMergedGlobalExpr(), llvm::AliasAnalysis::getModRefInfo(), getNaturalGEPWithOffset(), getNaturalGEPWithType(), llvm::ConstantExpr::getNeg(), llvm::MemoryDependenceAnalysis::getNonLocalPointerDependency(), getNoopInput(), llvm::ConstantExpr::getNot(), getOne(), llvm::getOrEnforceKnownAlignment(), llvm::Argument::getParamAlignment(), llvm::LoadInst::getPointerAddressSpace(), llvm::StoreInst::getPointerAddressSpace(), llvm::AtomicCmpXchgInst::getPointerAddressSpace(), llvm::AtomicRMWInst::getPointerAddressSpace(), llvm::PtrToIntInst::getPointerAddressSpace(), llvm::GetPointerBaseWithConstantOffset(), llvm::ConstantExpr::getPointerBitCastOrAddrSpaceCast(), llvm::ConstantExpr::getPointerCast(), llvm::GetElementPtrInst::getPointerOperandType(), llvm::ConstantExpr::getPtrToInt(), llvm::FastISel::getRegForGEPIndex(), llvm::FastISel::getRegForValue(), llvm::ScalarEvolution::getSCEV(), llvm::ConstantExpr::getSelect(), GetSelectFoldableConstant(), llvm::ConstantAggregateZero::getSequentialElement(), llvm::UndefValue::getSequentialElement(), llvm::ConstantExpr::getSExt(), llvm::ConstantExpr::getSExtOrBitCast(), GetShiftedValue(), llvm::ShuffleVectorInst::getShuffleMask(), llvm::ConstantExpr::getShuffleVector(), llvm::SystemZTargetLowering::getSingleConstraintMatchWeight(), llvm::ARMTargetLowering::getSingleConstraintMatchWeight(), llvm::PPCTargetLowering::getSingleConstraintMatchWeight(), llvm::TargetLowering::getSingleConstraintMatchWeight(), llvm::ConstantExpr::getSIToFP(), llvm::MemTransferInst::getSourceAddressSpace(), llvm::ConstantVector::getSplat(), llvm::ConstantDataVector::getSplat(), llvm::Constant::getSplatValue(), llvm::SelectionDAG::getSrcValue(), GetStoreValueForLoad(), getStrideFromPointer(), llvm::GetStringLength(), llvm::ConstantAggregateZero::getStructElement(), llvm::UndefValue::getStructElement(), llvm::AArch64TargetLowering::getTgtMemIntrinsic(), llvm::ARMTargetLowering::getTgtMemIntrinsic(), llvm::NVPTXTargetLowering::getTgtMemIntrinsic(), llvm::ConstantExpr::getTrunc(), llvm::ConstantExpr::getTruncOrBitCast(), llvm::ConstantStruct::getType(), llvm::ConstantVector::getType(), llvm::ConstantPointerNull::getType(), llvm::SCEVUnknown::getType(), llvm::InsertElementInst::getType(), llvm::ShuffleVectorInst::getType(), llvm::ConstantExpr::getUIToFP(), llvm::GetUnderlyingObject(), getUnderlyingObjectFromInt(), getUnderlyingObjects(), getUniqueCastUse(), llvm::SelectionDAGBuilder::getValue(), getValueAsDouble(), llvm::SelectionDAGBuilder::getValueImpl(), llvm::ExtractElementInst::getVectorOperandType(), llvm::ConstantExpr::getWithOperandReplaced(), llvm::ConstantExpr::getWithOperands(), llvm::ConstantExpr::getZExt(), llvm::ConstantExpr::getZExtOrBitCast(), llvm::GlobalVariable::GlobalVariable(), HandleByValArgument(), HandleByValArgumentInit(), llvm::Argument::hasByValAttr(), llvm::Argument::hasByValOrInAllocaAttr(), llvm::PHINode::hasConstantValue(), llvm::Argument::hasInAllocaAttr(), llvm::Argument::hasNestAttr(), llvm::Argument::hasNoAliasAttr(), llvm::Argument::hasNoCaptureAttr(), llvm::Argument::hasNonNullAttr(), llvm::Argument::hasStructRetAttr(), HoistThenElseCodeToIf(), IdxCompare(), llvm::CompositeType::indexValid(), llvm::BinaryOperator::init(), INITIALIZE_PASS(), INITIALIZE_TM_PASS(), llvm::ExecutionEngine::InitializeMemory(), llvm::FunctionLoweringInfo::InitializeRegForValue(), llvm::InlineFunction(), insertFastDiv(), insertInteger(), insertSinCosCall(), insertUniqueBackedgeBlock(), insertVector(), InstCombineLoadCast(), InstCombineStoreToCast(), llvm::MemoryDependenceAnalysis::invalidateCachedPointerInfo(), llvm::isBytewiseValue(), isCompatibleIVType(), IsConstantOffsetFromGlobal(), isDereferenceablePointer(), isDereferenceablePointer(), isEliminableCastPair(), isExistingPhi(), isFiniteNonZeroFp(), isGEPKnownNonNull(), isHighCostExpansion(), llvm::Instruction::isIdenticalToWhenDefined(), llvm::isImageOrSamplerVal(), llvm::CastInst::isIntegerCast(), isIntegerWideningViableForSlice(), isInterestingPointer(), isKnownNonZero(), isKnownToBeAPowerOfTwo(), llvm::CastInst::isLosslessCast(), llvm::Constant::isNegativeZeroValue(), llvm::CastInst::isNoopCast(), isNormalFp(), IsNullTerminatedString(), isOverwrite(), isPointerOperand(), llvm::objcarc::IsPotentialRetainableObjPtr(), isRepeatedByteSequence(), isSafeToEliminateVarargsCast(), llvm::isSafeToLoadUnconditionally(), llvm::isSafeToSpeculativelyExecute(), llvm::Instruction::isSameOperationAs(), isSimpleEnoughPointerToCommit(), isSimpleEnoughValueToCommitHelper(), isSimpleIVUser(), isStridedPtr(), isUndefShift(), llvm::ExtractElementInst::isValidOperands(), llvm::InsertElementInst::isValidOperands(), llvm::ShuffleVectorInst::isValidOperands(), isVectorPromotionViableForSlice(), isZero(), LinearizeExprTree(), llvm::LoadAndStorePromoter::LoadAndStorePromoter(), LowerAtomicCmpXchgInst(), LowerBSWAP(), llvm::FastISel::lowerCall(), llvm::SelectionDAGBuilder::LowerCallOperands(), llvm::FastISel::lowerCallTo(), llvm::SelectionDAGBuilder::LowerCallTo(), nvptx::LowerConstant(), lowerConstant(), LowerCTLZ(), LowerCTPOP(), llvm::IntrinsicLowering::LowerIntrinsicCall(), LowerNegateToMultiply(), llvm::IntrinsicLowering::LowerToByteSwap(), llvm::MapValue(), matchPairwiseReduction(), matchPairwiseReductionAtLevel(), MatchSelectFromAndOr(), matchVectorSplittingReduction(), llvm::MergeBasicBlockIntoOnlyPred(), mergeEmptyReturnBlocks(), OptimizeAndOrXor(), OptimizeAwayTrappingUsesOfValue(), OptimizeExtractBits(), OptimizeGlobalAddressOfMalloc(), OptimizeIntegerToVectorInsertions(), OptimizeIntToFloatBitCast(), OptimizeNoopCopyExpression(), OptimizeOnceStoredGlobal(), OptimizeVectorResize(), llvm::TargetLowering::ParseConstraints(), PerformHeapAllocSRoA(), llvm::PointerMayBeCaptured(), llvm::AssemblyWriter::printArgument(), printAsOperand(), llvm::AssemblyWriter::printInstruction(), processInstruction(), ProcessUAddIdiom(), ProcessUGT_ADDCST_ADD(), ProcessUMulZExtIdiom(), promoteSingleBlockAlloca(), PushValueAndType(), ReadDataFromGlobal(), llvm::RemapInstruction(), llvm::AliasSetTracker::remove(), RemoveDeadConstant(), llvm::PHINode::removeIncomingValue(), llvm::MemoryDependenceAnalysis::removeInstruction(), removeLifetimeIntrinsicUsers(), replaceAllUsesWith(), llvm::SCEVExpander::replaceCongruentIVs(), ReplaceFPIntrinsicWithCall(), llvm::InstCombiner::ReplaceInstUsesWith(), replaceSymbolicStrideSCEV(), llvm::ConstantExpr::replaceUsesOfWithOnConstant(), llvm::returnTypeIsEligibleForTailCall(), RewriteHeapSROALoadUser(), rewriteSingleStoreAlloca(), RewriteUsesOfClonedInstructions(), llvm::TypeFinder::run(), llvm::Interpreter::run(), llvm::LoadAndStorePromoter::run(), llvm::NVPTXLowerAggrCopies::runOnFunction(), llvm::FindUsedTypes::runOnModule(), scalarConstantToHexString(), llvm::FastISel::selectBinaryOp(), llvm::FastISel::selectBitCast(), llvm::FastISel::selectCast(), llvm::FastISel::selectExtractValue(), llvm::FastISel::selectFNeg(), llvm::FastISel::selectGetElementPtr(), llvm::FastISel::selectIntrinsicCall(), llvm::FastISel::selectOperator(), llvm::FastISel::selectPatchpoint(), llvm::FunctionLoweringInfo::set(), llvm::GlobalAlias::setAliasee(), llvm::MemIntrinsic::setDest(), llvm::GlobalVariable::setInitializer(), llvm::MemIntrinsic::setLength(), setName(), llvm::MemTransferInst::setSource(), llvm::MemSetInst::setValue(), shorter_filter(), shouldConvert(), llvm::AArch64TargetLowering::shouldExpandAtomicLoadInIR(), llvm::ARMTargetLowering::shouldExpandAtomicLoadInIR(), llvm::AArch64TargetLowering::shouldExpandAtomicRMWInIR(), llvm::ARMTargetLowering::shouldExpandAtomicRMWInIR(), llvm::AArch64TargetLowering::shouldExpandAtomicStoreInIR(), llvm::ARMTargetLowering::shouldExpandAtomicStoreInIR(), SimplifyAddInst(), SimplifyAndInst(), SimplifyAndOfICmps(), SimplifyAShrInst(), SimplifyBinOp(), SimplifyBranchOnICmpChain(), SimplifyCall(), SimplifyDiv(), SimplifyFAddInst(), SimplifyFSubInst(), SimplifyGEPInst(), SimplifyICmpInst(), SimplifyInsertValueInst(), llvm::SimplifyInstruction(), SimplifyLShrInst(), SimplifyMulInst(), simplifyOneLoop(), SimplifyOrInst(), SimplifyOrOfICmps(), SimplifyPHINode(), SimplifyRem(), SimplifyShift(), SimplifyShlInst(), SimplifySubInst(), SimplifyWithOpReplaced(), SimplifyXorInst(), SinkCast(), SinkShiftAndTruncate(), SinkThenElseCodeToEnd(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), speculatePHINodeLoads(), llvm::SplitLandingPadPredecessors(), stripAndAccumulateInBoundsConstantOffsets(), stripAndComputeConstantOffsets(), StripPtrCastKeepAS(), llvm::SubOne(), SubWithOverflow(), swapMayExposeCSEOpportunities(), SymbolicallyEvaluateBinop(), SymbolicallyEvaluateGEP(), ThreadCmpOverSelect(), tryToMakeAllocaBePromotable(), TryToOptimizeStoreOfMallocToGlobal(), TryToShrinkGlobalToBoolean(), TurnSwitchRangeIntoICmp(), underlyingObjectsAlias(), llvm::UnrollRuntimeLoopProlog(), UpdatePHINodes(), llvm::UpgradeBitCastExpr(), llvm::UpgradeBitCastInst(), llvm::UpgradeIntrinsicCall(), llvm::ValueHandleBase::ValueIsDeleted(), llvm::ValueHandleBase::ValueIsRAUWd(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitAddrSpaceCast(), llvm::InstCombiner::visitAllocaInst(), llvm::InstCombiner::visitAllocSite(), llvm::InstCombiner::visitAnd(), llvm::ObjectSizeOffsetVisitor::visitArgument(), llvm::InstCombiner::visitAShr(), llvm::Interpreter::visitAShr(), llvm::Interpreter::visitBinaryOperator(), llvm::InstCombiner::visitBitCast(), llvm::Interpreter::visitBitCastInst(), llvm::InstCombiner::visitCallInst(), llvm::Interpreter::visitExtractElementInst(), llvm::InstCombiner::visitExtractElementInst(), llvm::Interpreter::visitExtractValueInst(), llvm::InstCombiner::visitFAdd(), llvm::Interpreter::visitFCmpInst(), llvm::InstCombiner::visitFCmpInst(), llvm::Interpreter::visitFPExtInst(), llvm::InstCombiner::visitFPToSI(), llvm::Interpreter::visitFPToSIInst(), llvm::InstCombiner::visitFPToUI(), llvm::Interpreter::visitFPToUIInst(), llvm::InstCombiner::visitFPTrunc(), llvm::Interpreter::visitFPTruncInst(), llvm::InstCombiner::visitFSub(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::Interpreter::visitICmpInst(), llvm::InstCombiner::visitICmpInst(), llvm::InstCombiner::visitICmpInstWithCastAndCast(), llvm::InstCombiner::visitICmpInstWithInstAndIntCst(), llvm::InstCombiner::visitInsertElementInst(), llvm::Interpreter::visitInsertValueInst(), llvm::InstCombiner::visitIntToPtr(), llvm::Interpreter::visitIntToPtrInst(), visitIVCast(), llvm::InstCombiner::visitLandingPadInst(), llvm::Interpreter::visitLoadInst(), llvm::InstCombiner::visitLoadInst(), llvm::InstCombiner::visitLShr(), llvm::Interpreter::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::visitSelectInst(), llvm::InstCombiner::visitSelectInstWithICmp(), llvm::InstCombiner::visitSExt(), llvm::Interpreter::visitSExtInst(), llvm::Interpreter::visitShl(), llvm::InstCombiner::visitShuffleVectorInst(), llvm::Interpreter::visitSIToFPInst(), llvm::SelectionDAGBuilder::visitSPDescriptorParent(), 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::WriteConstantInternal(), WriteConstants(), WriteInstruction(), WriteMDNode(), llvm::AssemblyWriter::writeOperand(), llvm::AssemblyWriter::writeParamOperand(), and llvm::BasicBlock::~BasicBlock().
unsigned llvm::Value::getValueID | ( | ) | const [inline] |
getValueID - 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: # there is no value with code InstructionVal (no opcode==0). # there are more possible values for the value type than in ValueTy enum. # the InstructionVal enumerator must be the highest valued enumerator in the ValueTy enum.
Definition at line 346 of file Value.h.
Referenced by llvm::GlobalObject::classof(), llvm::MDString::classof(), llvm::GlobalAlias::classof(), llvm::Argument::classof(), llvm::Constant::classof(), llvm::GlobalVariable::classof(), llvm::InlineAsm::classof(), llvm::MDNode::classof(), llvm::ConstantInt::classof(), llvm::BasicBlock::classof(), llvm::ConstantFP::classof(), llvm::ConstantAggregateZero::classof(), llvm::GlobalValue::classof(), llvm::ConstantArray::classof(), llvm::Instruction::classof(), llvm::ConstantStruct::classof(), llvm::Function::classof(), llvm::ConstantVector::classof(), llvm::ConstantPointerNull::classof(), llvm::ConstantDataSequential::classof(), llvm::ConstantDataArray::classof(), llvm::ConstantDataVector::classof(), llvm::BlockAddress::classof(), llvm::ConstantExpr::classof(), llvm::UndefValue::classof(), llvm::isa_impl< Constant, 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< MDNode, Value >::doit(), llvm::Instruction::getOpcode(), and llvm::GlobalValue::setThreadLocalMode().
ValueName* llvm::Value::getValueName | ( | ) | const [inline] |
Definition at line 215 of file Value.h.
References Name.
Referenced by llvm::TargetIntrinsicInfo::getIntrinsicID(), llvm::Function::getIntrinsicID(), and llvm::Function::~Function().
bool llvm::Value::hasName | ( | ) | const [inline] |
Definition at line 214 of file Value.h.
References MDStringVal, and Name.
Referenced by AddAliasScopeMetadata(), llvm::canConstantFoldCallTo(), llvm::CloneBasicBlock(), llvm::ConstantFoldCall(), llvm::ExecutionEngine::emitGlobals(), FoldBlockIntoPredecessor(), llvm::Mangler::getNameWithPrefix(), llvm::getSamplerName(), llvm::getSurfaceName(), llvm::getTextureName(), llvm::MergeBlockIntoPredecessor(), llvm::ValueEnumerator::print(), llvm::SparseSolver::Print(), llvm::AssemblyWriter::printAlias(), llvm::AssemblyWriter::printArgument(), printAsOperand(), llvm::AssemblyWriter::printBasicBlock(), llvm::AssemblyWriter::printInstruction(), llvm::ReplaceInstWithValue(), llvm::FastISel::selectInstruction(), setName(), and takeName().
bool Value::hasNUses | ( | unsigned | N | ) | const |
hasNUses - Return true if this Value has exactly N users.
Definition at line 93 of file Value.cpp.
References use_begin(), and use_end().
bool Value::hasNUsesOrMore | ( | unsigned | N | ) | const |
hasNUsesOrMore - Return true if this value has N users or more. This is logically equivalent to getNumUses() >= N.
Definition at line 104 of file Value.cpp.
References use_begin(), and use_end().
Referenced by hasMoreThanOneUseOtherThanLLVMUsed(), ProcessUMulZExtIdiom(), llvm::BasicBlock::removePredecessor(), replaceConstantExprOp(), and SRAGlobal().
bool llvm::Value::hasOneUse | ( | ) | const [inline] |
hasOneUse - 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 277 of file Value.h.
References I, use_begin(), and use_end().
Referenced by CanEvaluateSExtd(), CanEvaluateShifted(), CanEvaluateShuffled(), CanEvaluateTruncated(), CanEvaluateZExtd(), CheapToScalarize(), checkForNegativeOperand(), CollectInsertionElements(), DeadPHICycle(), detectLog2OfHalf(), llvm::InstCombiner::DoOneIteration(), FindInitTrampolineFromAlloca(), llvm::SelectionDAGBuilder::FindMergedConditions(), FindSingleUseIdentifiedObject(), llvm::InstCombiner::FoldAndOfICmps(), llvm::FoldBranchToCommonDest(), FoldCondBranchOnPHI(), llvm::InstCombiner::foldFMulConst(), llvm::InstCombiner::FoldGEPICmp(), llvm::InstCombiner::FoldICmpShrCst(), llvm::InstCombiner::FoldOrOfICmps(), llvm::InstCombiner::FoldShiftByConstant(), llvm::FastISel::hasTrivialKill(), hasUseOtherThanLLVMUsed(), isFormingBranchFromSelectProfitable(), isReassociableOp(), IsSafeComputationToRemove(), LinearizeExprTree(), ProcessUGT_ADDCST_ADD(), ShouldBreakUpSubtract(), shouldMergeGEPs(), llvm::InstCombiner::SimplifyDivRemOfSelect(), simplifyValueKnownNonZero(), SinkThenElseCodeToEnd(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), tryFactorization(), llvm::FastISel::tryToFoldLoad(), TryToSimplifyUncondBranchWithICmpInIt(), TryToSinkInstruction(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitAnd(), llvm::InstCombiner::visitBranchInst(), llvm::InstCombiner::visitExtractElementInst(), llvm::InstCombiner::visitFDiv(), llvm::InstCombiner::visitFMul(), llvm::InstCombiner::visitFPTrunc(), llvm::InstCombiner::visitICmpInst(), llvm::InstCombiner::visitICmpInstWithInstAndIntCst(), llvm::InstCombiner::visitInsertElementInst(), llvm::InstCombiner::visitInsertValueInst(), llvm::InstCombiner::visitLoadInst(), llvm::InstCombiner::visitMul(), llvm::InstCombiner::visitOr(), llvm::InstCombiner::visitPHINode(), llvm::InstCombiner::visitSelectInstWithICmp(), llvm::InstCombiner::visitSExt(), llvm::InstCombiner::visitStoreInst(), llvm::InstCombiner::visitTrunc(), llvm::InstCombiner::visitXor(), and llvm::InstCombiner::visitZExt().
bool llvm::Value::hasSameSubclassOptionalData | ( | const Value * | V | ) | const [inline] |
hasSameSubclassOptionalData - Test whether the optional flags contained in this value are equal to the optional flags in the given value.
Definition at line 365 of file Value.h.
References SubclassOptionalData.
bool llvm::Value::hasValueHandle | ( | ) | const [inline] |
void llvm::Value::intersectOptionalDataWith | ( | const Value * | V | ) | [inline] |
intersectOptionalDataWith - Clear any optional flags in this value that are not also set in the given value.
Definition at line 371 of file Value.h.
References SubclassOptionalData.
Referenced by HoistThenElseCodeToIf(), and SinkThenElseCodeToEnd().
bool Value::isDereferenceablePointer | ( | const DataLayout * | DL = nullptr | ) | const |
isDereferenceablePointer - Test if this value is always a pointer to allocated and suitably aligned memory for a simple load or store.
Definition at line 577 of file Value.cpp.
References llvm::ARM_PROC::A, llvm::Type::getPointerElementType(), getType(), llvm::DataLayout::getTypeStoreSize(), llvm::DataLayout::getTypeStoreSizeInBits(), llvm::Type::isSized(), and stripAndAccumulateInBoundsConstantOffsets().
Referenced by AllCallersPassInValidPointerForArgument(), isSafePHIToSpeculate(), isSafeSelectToSpeculate(), and llvm::isSafeToSpeculativelyExecute().
bool Value::isUsedInBasicBlock | ( | const BasicBlock * | BB | ) | const |
isUsedInBasicBlock - Return true if this value is used in the specified basic block.
Definition at line 115 of file Value.cpp.
References llvm::BasicBlock::begin(), llvm::dyn_cast(), llvm::BasicBlock::end(), llvm::Instruction::getParent(), user_begin(), and user_end().
void llvm::Value::mutateType | ( | Type * | Ty | ) | [inline] |
mutateType - 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 455 of file Value.h.
Referenced by llvm::RemapInstruction().
void Value::print | ( | raw_ostream & | O | ) | const |
print - Implement operator<< on Value.
Definition at line 2493 of file AsmWriter.cpp.
References llvm::CallingConv::C, F(), llvm::MDNode::getFunction(), getModuleFromVal(), llvm::GlobalValue::getParent(), llvm_unreachable, llvm::TypePrinting::print(), printAsOperand(), llvm::AssemblyWriter::printGlobal(), llvm::AssemblyWriter::printInstruction(), llvm::AssemblyWriter::printMDNodeBody(), and llvm::WriteConstantInternal().
Referenced by llvm::InstCombiner::DoOneIteration(), dump(), llvm::operator<<(), and llvm::AliasSetTracker::print().
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 2531 of file AsmWriter.cpp.
References getModuleFromVal(), getType(), hasName(), llvm::TypePrinting::incorporateTypes(), llvm::TypePrinting::print(), and llvm::WriteAsOperandInternal().
Referenced by llvm::AsmPrinter::EmitFunctionHeader(), llvm::AsmPrinter::EmitGlobalVariable(), llvm::DOTGraphTraits< const Function * >::getCompleteNodeLabel(), llvm::DOTGraphTraits< const Function * >::getSimpleNodeLabel(), nvptx::LowerConstant(), lowerConstant(), llvm::SCEV::print(), llvm::IVUsers::print(), llvm::AliasSet::print(), print(), PrintLoopInfo(), PrintModRefResults(), and PrintResults().
void Value::replaceAllUsesWith | ( | Value * | V | ) |
replaceAllUsesWith - 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 340 of file Value.cpp.
References llvm::CallingConv::C, contains(), getType(), llvm::Use::getUser(), llvm::Use::set(), use_empty(), and llvm::ValueHandleBase::ValueIsRAUWd().
Referenced by AddOperand(), AddReachableCodeToWorklist(), changeToCall(), checkCSEInPredecessor(), llvm::CloneAndPruneFunctionInto(), ConvertShiftToMul(), cse(), llvm::DeleteDeadBlock(), DeleteInstructionInBlock(), llvm::DemotePHIToStack(), llvm::InstCombiner::DoOneIteration(), llvm::EliminateDuplicatePHINodes(), llvm::objcarc::EraseInstruction(), llvm::expandDivision(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), llvm::expandRemainder(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), findPHIToPartitionLoops(), FoldBlockIntoPredecessor(), FoldTwoEntryPHINode(), GetLoadValueForLoad(), HandleCallsInBlockInlinedThroughInvoke(), HoistThenElseCodeToIf(), INITIALIZE_PASS(), InlineCallIfPossible(), llvm::InlineFunction(), insertFastDiv(), LowerAtomicCmpXchgInst(), LowerAtomicRMWInst(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::IntrinsicLowering::LowerToByteSwap(), llvm::MapValue(), llvm::MergeBasicBlockIntoOnlyPred(), llvm::MergeBlockIntoPredecessor(), mergeEmptyReturnBlocks(), OptimizeGlobalAddressOfMalloc(), patchAndReplaceAllUsesWith(), promoteSingleBlockAlloca(), llvm::PHINode::removeIncomingValue(), llvm::BasicBlock::removePredecessor(), llvm::LibCallSimplifier::replaceAllUsesWith(), llvm::DIDescriptor::replaceAllUsesWith(), replaceAndRecursivelySimplifyImpl(), ReplaceCallWith(), llvm::SCEVExpander::replaceCongruentIVs(), llvm::InstCombiner::ReplaceInstUsesWith(), llvm::ReplaceInstWithValue(), ReplaceUsesOfWith(), llvm::Constant::replaceUsesOfWithOnConstantImpl(), llvm::BitcodeReaderValueList::ResolveConstantForwardRefs(), RewriteHeapSROALoadUser(), rewriteSingleStoreAlloca(), llvm::LoadAndStorePromoter::run(), simplifyOneLoop(), SinkThenElseCodeToEnd(), speculatePHINodeLoads(), speculateSelectInstLoads(), llvm::SplitLandingPadPredecessors(), SRAGlobal(), tryPromoteAllocaToVector(), tryToMakeAllocaBePromotable(), TryToOptimizeStoreOfMallocToGlobal(), TryToShrinkGlobalToBoolean(), llvm::TryToSimplifyUncondBranchFromEmptyBlock(), TryToSimplifyUncondBranchWithICmpInIt(), llvm::UnrollLoop(), llvm::UpgradeIntrinsicCall(), llvm::ObjectSizeOffsetEvaluator::visitPHINode(), and llvm::BasicBlock::~BasicBlock().
void Value::reverseUseList | ( | ) |
void Value::setName | ( | const Twine & | Name | ) |
setName() - Change the name of the value, choosing 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 176 of file Value.cpp.
References llvm::StringMapEntry< ValueTy >::Create(), llvm::StringMapEntry< ValueTy >::Destroy(), llvm::StringRef::empty(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT >::erase(), F(), llvm::StringRef::find_first_of(), getContext(), getName(), getSymTab(), getType(), hasName(), llvm::LLVMContextImpl::IntrinsicIDCache, llvm::Twine::isTriviallyEmpty(), MDStringVal, llvm::StringRef::npos, llvm::LLVMContext::pImpl, llvm::StringMapEntry< ValueTy >::setValue(), llvm::AArch64DB::ST, and llvm::Twine::toStringRef().
Referenced by llvm::AllocaInst::AllocaInst(), llvm::Argument::Argument(), llvm::BinaryOperator::BinaryOperator(), llvm::CloneBasicBlock(), llvm::CmpInst::CmpInst(), llvm::IRBuilderBase::CreateGlobalString(), FoldBlockIntoPredecessor(), llvm::FoldBranchToCommonDest(), FoldCondBranchOnPHI(), forceRenaming(), generateUnsignedDivisionCode(), llvm::GlobalValue::GlobalValue(), INITIALIZE_PASS(), llvm::IRBuilderDefaultInserter< true >::InsertHelper(), llvm::LoadInst::LoadInst(), llvm::IntrinsicLowering::LowerIntrinsicCall(), NegateValue(), ReplaceCallWith(), llvm::ShuffleVectorInst::ShuffleVectorInst(), llvm::SplitLandingPadPredecessors(), StripSymtab(), SwitchToLookupTable(), takeName(), llvm::UpgradeIntrinsicCall(), UpgradeIntrinsicFunction1(), UpgradeSSE41Function(), and UpgradeX86IntrinsicsWith8BitMask().
void llvm::Value::setValueName | ( | ValueName * | VN | ) | [inline] |
void llvm::Value::setValueSubclassData | ( | unsigned short | D | ) | [inline, protected] |
void llvm::Value::sortUseList | ( | Compare | Cmp | ) |
Value * Value::stripAndAccumulateInBoundsConstantOffsets | ( | const DataLayout & | DL, |
APInt & | Offset | ||
) |
Strips like stripInBoundsConstantOffsets
but also accumulates the constant offset stripped.
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 435 of file Value.cpp.
References llvm::AddrSpaceCast, llvm::APInt::getBitWidth(), llvm::Operator::getOpcode(), llvm::DataLayout::getPointerSizeInBits(), getType(), llvm::SmallPtrSetImpl< PtrType >::insert(), and llvm::Type::isPointerTy().
Referenced by llvm::GlobalAlias::getBaseObject(), isDereferenceablePointer(), and stripAndAccumulateInBoundsConstantOffsets().
const Value* llvm::Value::stripAndAccumulateInBoundsConstantOffsets | ( | const DataLayout & | DL, |
APInt & | Offset | ||
) | const [inline] |
Definition at line 416 of file Value.h.
References stripAndAccumulateInBoundsConstantOffsets().
Strips off unneeded pointer casts and all-constant GEPs from the specified value, returning the original pointer value.
If this is called on a non-pointer value, it returns 'this'.
Definition at line 431 of file Value.cpp.
Referenced by stripInBoundsConstantOffsets().
const Value* llvm::Value::stripInBoundsConstantOffsets | ( | ) | const [inline] |
Definition at line 402 of file Value.h.
References stripInBoundsConstantOffsets().
Strips off unneeded pointer casts and any in-bounds offsets from the specified value, returning the original pointer value.
If this is called on a non-pointer value, it returns 'this'.
Definition at line 472 of file Value.cpp.
Referenced by llvm::GlobalAlias::getBaseObject(), and stripInBoundsOffsets().
const Value* llvm::Value::stripInBoundsOffsets | ( | ) | const [inline] |
Definition at line 427 of file Value.h.
References stripInBoundsOffsets().
Strips off any unneeded pointer casts, all-zero GEPs and aliases from the specified value, returning the original uncasted value.
If this is called on a non-pointer value, it returns 'this'.
Reimplemented in llvm::Constant.
Definition at line 423 of file Value.cpp.
Referenced by llvm::AddLandingPadInfo(), llvm::MachineModuleInfo::AnalyzeModule(), llvm::ObjectSizeOffsetVisitor::compute(), computePointerICmp(), llvm::EmitBinaryFloatFnCall(), llvm::EmitMemChr(), llvm::EmitMemCmp(), llvm::EmitMemCpyChk(), llvm::EmitPutChar(), llvm::EmitStrCpy(), llvm::EmitStrNCmp(), llvm::EmitStrNCpy(), llvm::EmitUnaryFloatFnCall(), enforceKnownAlignment(), llvm::ExtractTypeInfo(), FindInitTrampoline(), FindInitTrampolineFromAlloca(), findUsedValues(), llvm::InstCombiner::FoldGEPICmp(), getCalledFunction(), llvm::getConstantStringInfo(), llvm::MemIntrinsic::getDest(), getKnownConstant(), llvm::MemTransferInst::getSource(), GetStringLengthH(), hasNoAliasAttr(), isOverwrite(), IsPointerOffset(), OptimizeOnceStoredGlobal(), RecognizePersonality(), llvm::BlockAddress::replaceUsesOfWithOnConstant(), llvm::skipPointerTransfer(), stripPointerCasts(), llvm::objcarc::StripPointerCastsAndObjCCalls(), llvm::InstCombiner::visitGetElementPtrInst(), and llvm::InstCombiner::visitLandingPadInst().
const Value* llvm::Value::stripPointerCasts | ( | ) | const [inline] |
Reimplemented in llvm::Constant.
Definition at line 384 of file Value.h.
References stripPointerCasts().
Strips off any unneeded pointer casts and all-zero GEPs from the specified value, returning the original uncasted value.
If this is called on a non-pointer value, it returns 'this'.
Definition at line 427 of file Value.cpp.
Referenced by llvm::collectUsedGlobalVariables(), FindUsedValues(), and stripPointerCastsNoFollowAliases().
const Value* llvm::Value::stripPointerCastsNoFollowAliases | ( | ) | const [inline] |
Definition at line 393 of file Value.h.
References stripPointerCastsNoFollowAliases().
void Value::takeName | ( | Value * | V | ) |
takeName - transfer the name from V to this value, setting V's name to empty. It is an error to call V->takeName(V).
Definition at line 242 of file Value.cpp.
References llvm::StringMapEntry< ValueTy >::Destroy(), getSymTab(), hasName(), MDStringVal, setName(), llvm::StringMapEntry< ValueTy >::setValue(), and llvm::AArch64DB::ST.
Referenced by llvm::InstCombiner::commonPointerCastTransforms(), ConvertShiftToMul(), llvm::FoldBranchToCommonDest(), llvm::InstCombiner::FoldSelectIntoOp(), llvm::InstCombiner::FoldShiftByConstant(), FoldTwoEntryPHINode(), forceRenaming(), GetLoadValueForLoad(), GetShiftedValue(), HoistThenElseCodeToIf(), LowerNegateToMultiply(), llvm::MergeBlockIntoPredecessor(), llvm::ReplaceInstWithValue(), setUsedInitializer(), tryFactorization(), tryToMakeAllocaBePromotable(), TryToShrinkGlobalToBoolean(), upgradeGlobalArray(), llvm::InstCombiner::visitCallInst(), llvm::InstCombiner::visitFMul(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::InstCombiner::visitICmpInstWithInstAndIntCst(), llvm::InstCombiner::visitMul(), llvm::InstCombiner::visitOr(), llvm::InstCombiner::visitTrunc(), and llvm::InstCombiner::visitXor().
use_iterator llvm::Value::use_begin | ( | ) | [inline] |
Definition at line 247 of file Value.h.
Referenced by llvm::InstCombiner::DoOneIteration(), getNumUses(), hasNUses(), hasNUsesOrMore(), hasOneUse(), LLVMGetFirstUse(), OptimizeGlobalAddressOfMalloc(), predictValueUseListOrder(), llvm::ValueEnumerator::print(), ReplaceUsesOfMallocWithGlobal(), RewriteUsesOfClonedInstructions(), uses(), and ~Value().
const_use_iterator llvm::Value::use_begin | ( | ) | const [inline] |
bool llvm::Value::use_empty | ( | ) | const [inline] |
Definition at line 243 of file Value.h.
Referenced by AddReachableCodeToWorklist(), llvm::SelectionDAGBuilder::CopyToExportRegsIfNeeded(), DeadPHICycle(), llvm::DeleteDeadBlock(), DeleteDeadInstruction(), deleteDeadInstruction(), DeleteInstructionInBlock(), llvm::MDNode::deleteTemporary(), llvm::DemotePHIToStack(), llvm::DemoteRegToStack(), llvm::Constant::destroyConstantImpl(), llvm::AsmPrinter::doFinalization(), llvm::InstCombiner::DoOneIteration(), llvm::InstCombiner::EraseInstFromFunction(), llvm::objcarc::EraseInstruction(), getAdjustedPtr(), hasAddressTakenAndUsed(), hasUseOtherThanLLVMUsed(), INITIALIZE_PASS(), llvm::InlineFunction(), llvm::isInstructionTriviallyDead(), isOnlyUsedInEntryBlock(), isUsedOutsideOfDefiningBlock(), LinearizeExprTree(), llvm::SelectionDAGBuilder::LowerCallOperands(), llvm::IntrinsicLowering::LowerIntrinsicCall(), OptimizeAwayTrappingUsesOfLoads(), OptimizeCmpExpression(), OptimizeExtractBits(), OptimizeGlobalAddressOfMalloc(), passingValueIsAlwaysUndefined(), predictValueUseListOrder(), llvm::AssemblyWriter::printBasicBlock(), promoteSingleBlockAlloca(), llvm::RecursivelyDeleteTriviallyDeadInstructions(), RemoveDeadConstant(), removeDeadUsersOfConstant(), replaceAllUsesWith(), ReplaceCallWith(), ReplaceUsesOfMallocWithGlobal(), RewriteUsesOfClonedInstructions(), RewriteUsesOfLoadForHeapSRoA(), llvm::LoadAndStorePromoter::run(), llvm::Inliner::runOnSCC(), llvm::FastISel::selectIntrinsicCall(), llvm::FunctionLoweringInfo::set(), llvm::FastISel::CallLoweringInfo::setCallee(), llvm::TargetLowering::CallLoweringInfo::setCallee(), llvm::InstCombiner::SimplifyDivRemOfSelect(), SinkCast(), SinkThenElseCodeToEnd(), speculatePHINodeLoads(), speculateSelectInstLoads(), SRAGlobal(), tryToMakeAllocaBePromotable(), TryToShrinkGlobalToBoolean(), llvm::PtrUseVisitor< SliceBuilder >::visitGetElementPtrInst(), llvm::BasicBlock::~BasicBlock(), and ~Value().
use_iterator llvm::Value::use_end | ( | ) | [inline] |
Definition at line 249 of file Value.h.
Referenced by getNumUses(), hasNUses(), hasNUsesOrMore(), hasOneUse(), LLVMGetFirstUse(), predictValueUseListOrder(), llvm::ValueEnumerator::print(), RewriteUsesOfClonedInstructions(), uses(), and ~Value().
const_use_iterator llvm::Value::use_end | ( | ) | const [inline] |
User* llvm::Value::user_back | ( | ) | [inline] |
Reimplemented in llvm::Instruction.
Definition at line 264 of file Value.h.
References user_begin().
Referenced by llvm::Constant::destroyConstantImpl(), FindInitTrampolineFromAlloca(), OptimizeGlobalAddressOfMalloc(), removeDeadUsersOfConstant(), llvm::NVPTXLowerAggrCopies::runOnFunction(), SRAGlobal(), TryToShrinkGlobalToBoolean(), llvm::InstCombiner::visitInsertValueInst(), and llvm::BasicBlock::~BasicBlock().
const User* llvm::Value::user_back | ( | ) | const [inline] |
Reimplemented in llvm::Instruction.
Definition at line 265 of file Value.h.
References user_begin().
user_iterator llvm::Value::user_begin | ( | ) | [inline] |
Definition at line 260 of file Value.h.
Referenced by areAllUsesEqual(), CleanupConstantGlobalUsers(), CleanupPointerRootUsers(), ConstantPropUsersOf(), llvm::InstCombiner::DoOneIteration(), llvm::getMallocType(), llvm::FastISel::hasTrivialKill(), INITIALIZE_PASS(), isUsedInBasicBlock(), OptimizeAwayTrappingUsesOfLoads(), OptimizeAwayTrappingUsesOfValue(), OptimizeCmpExpression(), OptimizeExtractBits(), passingValueIsAlwaysUndefined(), PerformHeapAllocSRoA(), promoteSingleBlockAlloca(), llvm::Constant::removeDeadConstantUsers(), removeLifetimeIntrinsicUsers(), replaceConstantExprOp(), ReplaceUsesOfMallocWithGlobal(), RewriteHeapSROALoadUser(), rewriteSingleStoreAlloca(), RewriteUsesOfLoadForHeapSRoA(), llvm::NVPTXLowerAggrCopies::runOnFunction(), SinkCast(), SinkShiftAndTruncate(), tryToMakeAllocaBePromotable(), llvm::UpgradeCallsToIntrinsic(), llvm::Instruction::user_back(), user_back(), users(), and llvm::InstCombiner::visitICmpInst().
const_user_iterator llvm::Value::user_begin | ( | ) | const [inline] |
user_iterator llvm::Value::user_end | ( | ) | [inline] |
Definition at line 262 of file Value.h.
Referenced by areAllUsesEqual(), CleanupConstantGlobalUsers(), CleanupPointerRootUsers(), ConstantPropUsersOf(), llvm::getMallocType(), INITIALIZE_PASS(), isUsedInBasicBlock(), OptimizeAwayTrappingUsesOfLoads(), OptimizeAwayTrappingUsesOfValue(), OptimizeCmpExpression(), OptimizeExtractBits(), PerformHeapAllocSRoA(), promoteSingleBlockAlloca(), llvm::Constant::removeDeadConstantUsers(), removeLifetimeIntrinsicUsers(), replaceConstantExprOp(), RewriteHeapSROALoadUser(), rewriteSingleStoreAlloca(), RewriteUsesOfLoadForHeapSRoA(), SinkCast(), SinkShiftAndTruncate(), llvm::UpgradeCallsToIntrinsic(), and users().
const_user_iterator llvm::Value::user_end | ( | ) | const [inline] |
iterator_range<user_iterator> llvm::Value::users | ( | ) | [inline] |
Definition at line 266 of file Value.h.
References user_begin(), and user_end().
Referenced by llvm::InstCombineWorklist::AddUsersToWorkList(), AllCallersPassInValidPointerForArgument(), AllGlobalLoadUsesSimpleEnoughForHeapSRA(), AllUsesOfLoadedValueWillTrapIfNull(), AllUsesOfValueWillTrapIfNull(), AlmostDeadIV(), BlockIsSimpleEnoughToThreadThrough(), ChangeCalleesToFastCall(), collectUsesWithPtrTypes(), completeEphemeralValues(), enqueueUsersInWorklist(), llvm::FindAllocaDbgDeclare(), FindInitTrampolineFromAlloca(), llvm::CodeExtractor::findInputsOutputs(), FindSingleUseIdentifiedObject(), getUniqueCastUse(), GlobalUsersSafeToSRA(), hasLifetimeMarkers(), hasOutsideLoopUser(), hasUsesOutsideLoop(), llvm::isAllocaPromotable(), isAllocSiteRemovable(), llvm::Constant::isConstantUsed(), llvm::Function::isDefTriviallyDead(), isEphemeralValueOf(), isHighCostExpansion(), isOnlyUsedInEntryBlock(), isOnlyUsedInEqualityComparison(), isOnlyUsedInZeroEqualityComparison(), IsOnlyUsedInZeroEqualityComparison(), isSafeAndProfitableToSinkLoad(), isSafePHIToSpeculate(), isSafeSelectToSpeculate(), isSafeSROAElementUse(), llvm::isSafeToDestroyConstant(), isUsedByLifetimeMarker(), isUsedOutsideOfDefiningBlock(), IsUserOfGlobalSafeForSRA(), LoadUsesSimpleEnoughForHeapSRA(), llvm::LowerDbgDeclare(), NegateValue(), OnlyUsedBy(), llvm::onlyUsedByLifetimeMarkers(), ProcessUGT_ADDCST_ADD(), ProcessUMulZExtIdiom(), promoteSingleBlockAlloca(), PushDefUseChildren(), pushIVUsers(), RemoveNestAttribute(), replaceAndRecursivelySimplifyImpl(), ReplaceUsesOfWith(), rewriteNonInstructionUses(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), llvm::SparseSolver::Solve(), swapMayExposeCSEOpportunities(), tryPromoteAllocaToVector(), tryToMakeAllocaBePromotable(), TryToShrinkGlobalToBoolean(), usedInGlobalVarDef(), usedInOneFunc(), useFuncSeen(), and ValueIsOnlyUsedLocallyOrStoredToOneGlobal().
iterator_range<const_user_iterator> llvm::Value::users | ( | ) | const [inline] |
Definition at line 269 of file Value.h.
References user_begin(), and user_end().
iterator_range<use_iterator> llvm::Value::uses | ( | ) | [inline] |
Definition at line 251 of file Value.h.
References use_begin(), and use_end().
Referenced by AddressIsTaken(), llvm::IVUsers::AddUsersImpl(), analyzeGlobalAux(), determinePointerReadAttrs(), llvm::detail::PtrUseVisitorBase::enqueueUsers(), FindPhiPredForUseInBlock(), llvm::Function::hasAddressTaken(), IsStoredObjCPointer(), llvm::Instruction::isUsedOutsideOfBlock(), llvm::PointerMayBeCaptured(), predictValueUseListOrderImpl(), llvm::ValueEnumerator::print(), and processInstruction().
iterator_range<const_use_iterator> llvm::Value::uses | ( | ) | const [inline] |
Definition at line 254 of file Value.h.
References use_begin(), and use_end().
friend class ValueHandleBase [friend] |
friend class ValueSymbolTable [friend] |
const unsigned llvm::Value::MaximumAlignment = 1u << 29 [static] |
MaximumAlignment - This is the greatest alignment value supported by load, store, and alloca instructions, and global values.
Definition at line 448 of file Value.h.
Referenced by llvm::getOrEnforceKnownAlignment(), and WriteInstruction().
unsigned char llvm::Value::SubclassOptionalData [protected] |
SubclassOptionalData - 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 84 of file Value.h.
Referenced by llvm::BinaryConstantExpr::BinaryConstantExpr(), clearSubclassOptionalData(), llvm::Instruction::clone(), llvm::GetElementPtrConstantExpr::Create(), llvm::ConstantExpr::getAsInstruction(), llvm::FPMathOperator::getFastMathFlags(), getRawSubclassOptionalData(), llvm::ConstantExpr::getWithOperands(), llvm::FPMathOperator::hasAllowReciprocal(), llvm::FPMathOperator::hasNoInfs(), llvm::FPMathOperator::hasNoNaNs(), llvm::OverflowingBinaryOperator::hasNoSignedWrap(), llvm::FPMathOperator::hasNoSignedZeros(), llvm::OverflowingBinaryOperator::hasNoUnsignedWrap(), hasSameSubclassOptionalData(), llvm::FPMathOperator::hasUnsafeAlgebra(), intersectOptionalDataWith(), llvm::PossiblyExactOperator::isExact(), llvm::Instruction::isIdenticalTo(), and llvm::GEPOperator::isInBounds().