|
LLVM
3.7.0
|
LLVM Value Representation. More...
#include <Value.h>
Public Types | |
| enum | ValueTy |
| Concrete subclass of this. More... | |
| typedef use_iterator_impl< Use > | use_iterator |
| typedef use_iterator_impl < const Use > | const_use_iterator |
| typedef user_iterator_impl< User > | user_iterator |
| typedef user_iterator_impl < const User > | const_user_iterator |
Public Member Functions | |
| virtual | ~Value () |
| void | dump () const |
| Support for debugging, callable in GDB: V->dump() More... | |
| Type * | getType () const |
| All values are typed, get the type of this value. More... | |
| LLVMContext & | getContext () const |
| All values hold a context through their type. More... | |
| bool | hasName () const |
| ValueName * | getValueName () const |
| void | setValueName (ValueName *VN) |
| StringRef | getName () const |
| Return a constant reference to the value's name. More... | |
| void | setName (const Twine &Name) |
| Change the name of the value. More... | |
| void | takeName (Value *V) |
| Transfer the name from V to this value. More... | |
| void | replaceAllUsesWith (Value *V) |
| Change all uses of this to point to a new Value. More... | |
| void | 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. More... | |
| bool | use_empty () const |
| use_iterator | use_begin () |
| const_use_iterator | use_begin () const |
| use_iterator | use_end () |
| const_use_iterator | use_end () const |
| iterator_range< use_iterator > | uses () |
| iterator_range < const_use_iterator > | uses () const |
| bool | user_empty () const |
| user_iterator | user_begin () |
| const_user_iterator | user_begin () const |
| user_iterator | user_end () |
| const_user_iterator | user_end () const |
| User * | user_back () |
| const User * | user_back () const |
| iterator_range< user_iterator > | users () |
| iterator_range < const_user_iterator > | users () const |
| bool | hasOneUse () const |
| Return true if there is exactly one user of this value. More... | |
| bool | hasNUses (unsigned N) const |
| Return true if this Value has exactly N users. More... | |
| bool | hasNUsesOrMore (unsigned N) const |
| Return true if this value has N users or more. More... | |
| bool | isUsedInBasicBlock (const BasicBlock *BB) const |
| Check if this value is used in the specified basic block. More... | |
| unsigned | getNumUses () const |
| This method computes the number of uses of this Value. More... | |
| void | addUse (Use &U) |
| This method should only be used by the Use class. More... | |
| unsigned | getValueID () const |
| Return an ID for the concrete type of this object. More... | |
| unsigned | getRawSubclassOptionalData () const |
| Return the raw optional flags value contained in this value. More... | |
| void | clearSubclassOptionalData () |
| Clear the optional flags contained in this value. More... | |
| bool | hasSameSubclassOptionalData (const Value *V) const |
| Check the optional flags for equality. More... | |
| void | intersectOptionalDataWith (const Value *V) |
| Clear any optional flags not set in the given Value. More... | |
| bool | hasValueHandle () const |
| Return true if there is a value handle associated with this value. More... | |
| bool | isUsedByMetadata () const |
| Return true if there is metadata referencing this value. More... | |
| Value * | stripPointerCasts () |
| Strip off pointer casts, all-zero GEPs, and aliases. More... | |
| const Value * | stripPointerCasts () const |
| Value * | stripPointerCastsNoFollowAliases () |
| Strip off pointer casts and all-zero GEPs. More... | |
| const Value * | stripPointerCastsNoFollowAliases () const |
| Value * | stripInBoundsConstantOffsets () |
| Strip off pointer casts and all-constant inbounds GEPs. More... | |
| const Value * | stripInBoundsConstantOffsets () const |
| Value * | stripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset) |
| Accumulate offsets from stripInBoundsConstantOffsets(). More... | |
| const Value * | stripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset) const |
| Value * | stripInBoundsOffsets () |
| Strip off pointer casts and inbounds GEPs. More... | |
| const Value * | stripInBoundsOffsets () const |
| Value * | DoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB) |
| Translate PHI node to its predecessor from the given basic block. More... | |
| const Value * | DoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB) const |
| void | mutateType (Type *Ty) |
| Mutate the type of this Value to be of the specified type. More... | |
| template<class Compare > | |
| void | sortUseList (Compare Cmp) |
| Sort the use-list. More... | |
| void | reverseUseList () |
| Reverse the use-list. More... | |
| void | print (raw_ostream &O) const |
| Implement operator<< on Value. More... | |
| void | print (raw_ostream &O, ModuleSlotTracker &MST) const |
| void | printAsOperand (raw_ostream &O, bool PrintType=true, const Module *M=nullptr) const |
| Print the name of this Value out to the specified raw_ostream. More... | |
| void | printAsOperand (raw_ostream &O, bool PrintType, ModuleSlotTracker &MST) const |
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 = 29 } |
| The number of operands in the subclass. More... | |
Protected Member Functions | |
| Value (Type *Ty, unsigned scid) | |
| 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 |
| bool | IsUsedByMD: 1 |
| bool | HasName: 1 |
| bool | HasHungOffUses: 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.
| 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 |
|
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 47 of file Value.cpp.
References llvm::Call, llvm::Type::isFirstClassType(), llvm::Type::isStructTy(), and llvm::Type::isVoidTy().
Referenced by ValuesOverlap().
|
virtual |
Definition at line 63 of file Value.cpp.
References 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 335 of file Value.h.
Referenced by llvm::Use::set(), and llvm::Use::swap().
|
inline |
Clear the optional flags contained in this value.
Definition at line 374 of file Value.h.
References SubclassOptionalData.
Referenced by ClearSubclassDataAfterReassociation().
| Value * Value::DoPHITranslation | ( | const BasicBlock * | CurBB, |
| const BasicBlock * | PredBB | ||
| ) |
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 511 of file Value.cpp.
References llvm::dyn_cast(), llvm::PHINode::getIncomingValueForBlock(), and llvm::Instruction::getParent().
Referenced by DoPHITranslation().
|
inline |
Definition at line 453 of file Value.h.
References DoPHITranslation().
| LLVM_DUMP_METHOD void Value::dump | ( | ) | const |
Support for debugging, callable in GDB: V->dump()
Definition at line 3353 of file AsmWriter.cpp.
References llvm::dbgs(), and print().
Referenced by llvm::checkSanitizerInterfaceFunction(), llvm::dumpBlock(), llvm::dumpInst(), findBasePointer(), llvm::ExecutionEngine::InitializeMemory(), llvm::ValueEnumerator::print(), print_name(), tryPromoteAllocaToVector(), and WriteConstants().
| LLVMContext & Value::getContext | ( | ) | const |
All values hold a context through their type.
Definition at line 519 of file Value.cpp.
References llvm::Type::getContext().
Referenced by llvm::CallInst::addAttribute(), llvm::InvokeInst::addAttribute(), llvm::CallInst::addDereferenceableAttr(), llvm::InvokeInst::addDereferenceableAttr(), llvm::CallInst::addDereferenceableOrNullAttr(), llvm::InvokeInst::addDereferenceableOrNullAttr(), llvm::LoopAccessInfo::addRuntimeCheck(), AddWithOverflow(), llvm::SelectInst::areInvalidOperands(), BitCastConstantVector(), calculateVectorIndex(), CanShareConstantPoolEntry(), changeToUnreachable(), llvm::FenceInst::cloneImpl(), llvm::UnreachableInst::cloneImpl(), CollectInsertionElements(), CollectShuffleElements(), CollectSingleShuffleElements(), combineLoadToNewType(), combineLoadToOperationType(), llvm::ComputeMultiple(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), llvm::ConstantFoldBinaryInstruction(), llvm::ConstantFoldCastInstruction(), llvm::ConstantFoldCompareInstruction(), llvm::ConstantFoldInsertElementInstruction(), llvm::ConstantFoldLoadFromConstPtr(), llvm::ConstantFoldShuffleVectorInstruction(), llvm::SelectionDAGBuilder::CopyValueToVirtualRegister(), llvm::ARMConstantPoolConstant::Create(), CreatePrologue(), decomposeBitTestICmp(), llvm::Instruction::dropUnknownMetadata(), ExtractConstantBytes(), extractMDNode(), llvm::FindAllocaDbgDeclare(), FitsInFPType(), FoldBitCast(), llvm::FoldBranchToCommonDest(), llvm::InstCombiner::FoldCmpLoadFromIndexedGlobal(), llvm::InstCombiner::FoldICmpAddOpCst(), FoldReinterpretLoadFromConstPtr(), llvm::InstCombiner::FoldShiftByConstant(), genLoopLimit(), llvm::ValueAsMetadata::get(), llvm::ConstantExpr::get(), llvm::LazyValueInfo::getConstant(), llvm::LazyValueInfo::getConstantOnEdge(), llvm::ValueAsMetadata::getContext(), getEdgeValueLocal(), llvm::ConstantDataSequential::getElementAsConstant(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantExpr::getExtractValue(), llvm::ConstantExpr::getFCmp(), llvm::ConstantExpr::getGetElementPtr(), llvm::ConstantExpr::getICmp(), llvm::ValueAsMetadata::getIfExists(), llvm::ConstantExpr::getInsertElement(), llvm::ConstantExpr::getInsertValue(), llvm::getObjectSize(), llvm::FastISel::getRegForValue(), llvm::ConstantExpr::getSelect(), GetShiftedValue(), llvm::ConstantDataVector::getSplat(), llvm::ConstantStruct::getTypeForElements(), getValueName(), handleBranchExpect(), handleSwitchExpect(), llvm::InlineFunction(), llvm::isBytewiseValue(), llvm::CastInst::isNoopCast(), LLVMAddAttribute(), LLVMGetOperand(), LLVMRemoveAttribute(), LLVMSetParamAlignment(), LookThroughFPExtensions(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::MapValue(), llvm::MergeBasicBlockIntoOnlyPred(), OptimizeGlobalAddressOfMalloc(), OptimizeNoopCopyExpression(), OptimizeVectorResize(), PerformHeapAllocSRoA(), ProcessUGT_ADDCST_ADD(), ReadDataFromGlobal(), llvm::CallInst::removeAttribute(), llvm::InvokeInst::removeAttribute(), ReplaceFPIntrinsicWithCall(), ReplaceWithStatepoint(), ScalarizeMaskedLoad(), ScalarizeMaskedStore(), llvm::FastISel::selectBinaryOp(), llvm::FastISel::selectFNeg(), llvm::Instruction::setMetadata(), setUsedInitializer(), setValueName(), SimplifyCondBranchToCondBranch(), SimplifyICmpInst(), SimplifyTerminatorOnSelect(), llvm::SplitCriticalEdge(), SRAGlobal(), SubWithOverflow(), TryToShrinkGlobalToBoolean(), TryToSimplifyUncondBranchWithICmpInIt(), TurnSwitchRangeIntoICmp(), llvm::UpgradeBitCastExpr(), llvm::UpgradeBitCastInst(), upgradeGlobalArray(), llvm::UpgradeInstWithTBAATag(), llvm::UpgradeIntrinsicCall(), llvm::ValueHandleBase::ValueIsDeleted(), llvm::ValueHandleBase::ValueIsRAUWd(), 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 llvm::InstCombiner::visitSwitchInst().
| StringRef Value::getName | ( | ) | const |
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 188 of file Value.cpp.
References llvm::StringMapEntry< ValueTy >::getKey(), getValueName(), and hasName().
Referenced by AddAliasScopeMetadata(), llvm::X86FrameLowering::adjustForHiPEPrologue(), analyzeParsePointLiveness(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), assureFPCallStub(), llvm::WinException::beginFunction(), llvm::Interpreter::callExternalFunction(), llvm::canConstantFoldCallTo(), CanPropagatePredecessorsForPHIs(), llvm::classifyEHPersonality(), llvm::CloneBasicBlock(), llvm::CloneFunction(), llvm::orc::cloneFunctionDecl(), llvm::orc::cloneGlobalVariableDecl(), CloneInstructionInExitBlock(), CloneLoopBlocks(), combineInstructionsOverFunction(), combineLoadToNewType(), llvm::InstCombiner::commonShiftTransforms(), ConnectProlog(), llvm::ConstantFoldCall(), ConstructSSAForLoadSet(), copyFunctionProto(), copyGlobalAliasProto(), copyGlobalVariableProto(), copyGVAttributes(), createCleanupHandler(), createFPFnStub(), createReplacementInstr(), llvm::DemotePHIToStack(), llvm::DemoteRegToStack(), llvm::DISubprogram::describes(), llvm::dumpBlock(), llvm::HexagonRegisterInfo::eliminateFrameIndex(), llvm::EmitGEPOffset(), llvm::ExecutionEngine::emitGlobals(), llvm::AsmPrinter::EmitSpecialLLVMGlobal(), EvaluateStaticConstructor(), findBaseDefiningValueCached(), findBasePointer(), findBasePointers(), 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(), GetHeapSROAValue(), llvm::InlineCostAnalysis::getInlineCost(), llvm::getInst(), llvm::getIntrinsicIDForCall(), llvm::ExecutionEngine::getMangledName(), getName(), llvm::MachineFunction::getName(), llvm::Mangler::getNameWithPrefix(), llvm::DOTGraphTraits< BlockFrequencyInfo * >::getNodeLabel(), llvm::orc::OrcMCJITReplacement::getPointerToFunction(), llvm::getSamplerName(), llvm::sampleprof::SampleProfileReader::getSamplesFor(), llvm::DOTGraphTraits< const Function * >::getSimpleNodeLabel(), llvm::getSurfaceName(), llvm::object::IRObjectFile::getSymbolFlags(), llvm::getTextureName(), getVectorCallCost(), llvm::MachineModuleInfo::getWinEHParent(), GlobalWasGeneratedByAsan(), HandleByValArgument(), HandleCallsInBlockInlinedThroughInvoke(), hasMemoryWrite(), hoist(), HoistThenElseCodeToIf(), INITIALIZE_PASS(), llvm::InlineFunction(), llvm::InsertPreheaderForLoop(), insertRelocationStores(), insertUniqueBackedgeBlock(), llvm::isFreeCall(), isGCSafepointPoll(), llvm::Function::isIntrinsic(), isIntrinsicInline(), llvm::TargetTransformInfoImplBase::isLoweredToCall(), isMemsetPattern16(), isReportingError(), llvm::LoadAndStorePromoter::LoadAndStorePromoter(), lookupFunction(), llvm::AMDGPUMCInstLower::lower(), LowerINTRINSIC_WO_CHAIN(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::IntrinsicLowering::LowerToByteSwap(), maybePrintComdat(), llvm::orc::GlobalRenamer::needsRenaming(), llvm::MipsRegisterInfo::needsStackRealignment(), NegateValue(), llvm::DiagnosticPrinterRawOStream::operator<<(), false::operator<<(), llvm::FortifiedLibCallSimplifier::optimizeCall(), llvm::LibCallSimplifier::optimizeCall(), OptimizeGlobalAddressOfMalloc(), llvm::OptLevelChanger::OptLevelChanger(), order_by_name(), PerformHeapAllocSRoA(), llvm::Trace::print(), llvm::ValueEnumerator::print(), llvm::CallGraph::print(), llvm::SparseSolver::Print(), llvm::ARMConstantPoolConstant::print(), llvm::CallGraphNode::print(), print_name(), llvm::BranchProbabilityInfo::printEdgeProbability(), PrintLLVMName(), llvm::object::IRObjectFile::printSymbolName(), processInstruction(), ProcessUGT_ADDCST_ADD(), recoverFramePointer(), llvm::LazyCallGraph::SCC::removeInterSCCEdge(), ReplaceCallWith(), llvm::replaceDominatedUsesWith(), ReplaceUsesOfMallocWithGlobal(), ReplaceWithStatepoint(), RewriteHeapSROALoadUser(), RewriteUsesOfClonedInstructions(), llvm::AssumptionPrinterPass::run(), llvm::DominatorTreePrinterPass::run(), llvm::DOTGraphTraitsViewer< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnFunction(), llvm::BranchProbabilityInfo::runOnFunction(), llvm::DOTGraphTraitsPrinter< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnFunction(), llvm::RGPassManager::runOnFunction(), llvm::FPPassManager::runOnFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::Inliner::runOnSCC(), llvm::VLIWMachineScheduler::schedule(), llvm::FastISel::selectInstruction(), llvm::BranchProbabilityInfo::setEdgeWeight(), shouldInternalize(), simplifyAllocaArraySize(), 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(), unpackLoadToAggregate(), llvm::UnrollLoop(), UpdatePHINodes(), llvm::UpgradeIntrinsicCall(), UpgradeIntrinsicFunction1(), UpgradeSSE41Function(), UpgradeX86IntrinsicsWith8BitMask(), usedInGlobalVarDef(), llvm::ValueHandleBase::ValueIsDeleted(), llvm::ValueHandleBase::ValueIsRAUWd(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitAnd(), llvm::InstCombiner::visitExtractElementInst(), llvm::InstCombiner::visitFPTrunc(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::InstCombiner::visitICmpInst(), llvm::InstCombiner::visitICmpInstWithCastAndCast(), llvm::InstCombiner::visitICmpInstWithInstAndIntCst(), llvm::InstCombiner::visitLoadInst(), llvm::InstCombiner::visitMul(), llvm::InstCombiner::visitOr(), llvm::InstCombiner::visitSDiv(), llvm::InstCombiner::visitSExt(), llvm::InstCombiner::visitShuffleVectorInst(), llvm::InstCombiner::visitSRem(), llvm::InstCombiner::visitTrunc(), llvm::InstCombiner::visitXor(), llvm::InstCombiner::visitZExt(), llvm::sampleprof::SampleProfileWriter::write(), llvm::OptLevelChanger::~OptLevelChanger(), and ~Value().
| 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 134 of file Value.cpp.
References use_begin(), and use_end().
Referenced by llvm::AArch64TargetLowering::isProfitableToHoist().
|
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 369 of file Value.h.
References SubclassOptionalData.
Referenced by llvm::ConstantExprKeyType::operator==().
|
inlineprotected |
Definition at line 507 of file Value.h.
Referenced by llvm::Function::getCallingConv(), llvm::BasicBlock::hasAddressTaken(), llvm::Function::hasPrefixData(), llvm::Function::hasPrologueData(), llvm::Function::setCallingConv(), llvm::Function::setPrefixData(), and llvm::Function::setPrologueData().
|
inline |
All values are typed, get the type of this value.
Definition at line 222 of file Value.h.
Referenced by llvm::AliasSetTracker::add(), llvm::SSAUpdater::AddAvailableValue(), llvm::PHINode::addIncoming(), llvm::AddOne(), llvm::LoopAccessInfo::addRuntimeCheck(), llvm::IVUsers::AddUsersImpl(), AddWithOverflow(), AnalyzeLoadFromClobberingLoad(), AnalyzeLoadFromClobberingStore(), AppendTypeSuffix(), llvm::SelectInst::areInvalidOperands(), BitCastConstantVector(), BuildConstantFromSCEV(), buildMultiplyTree(), BuildNew(), BuildSubAggregate(), CanCoerceMustAliasedValueToLoad(), CanEvaluateSExtd(), CanEvaluateShifted(), CanEvaluateTruncated(), CanEvaluateZExtd(), llvm::FastISel::canFoldAddIntoGEP(), canReplaceGEPIdxWithZero(), CanShareConstantPoolEntry(), canTrapImpl(), llvm::CastInst::castIsValid(), llvm::CastToCStr(), CheapToScalarize(), llvm::checkBinaryFloatSignature(), llvm::checkUnaryFloatSignature(), llvm::FPMathOperator::classof(), llvm::CloneAndPruneIntoFromInst(), 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(), CloneLoopBlocks(), CoerceAvailableValueToLoadType(), CollectBSwapParts(), CollectInsertionElements(), CollectShuffleElements(), CollectSingleShuffleElements(), collectUsesWithPtrTypes(), combineLoadToNewType(), combineLoadToOperationType(), combineStoreToNewValue(), CombineUAddWithOverflow(), llvm::InstCombiner::commonCastTransforms(), llvm::InstCombiner::commonIDivTransforms(), llvm::InstCombiner::commonShiftTransforms(), llvm::ObjectSizeOffsetVisitor::compute(), llvm::ObjectSizeOffsetEvaluator::compute(), computeKnownBits(), computeKnownBitsFromOperator(), computeLiveInValues(), llvm::ComputeMultiple(), ComputeNumSignBits(), llvm::computeOverflowForUnsignedMul(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), computePointerICmp(), ComputeSignBit(), llvm::ComputeUsesVAFloatArgument(), ConcatenateTwoVectors(), ConcatenateVectors(), ConnectProlog(), ConstantFold(), llvm::ConstantFoldBinaryInstruction(), llvm::ConstantFoldCastInstruction(), llvm::ConstantFoldCompareInstOperands(), llvm::ConstantFoldCompareInstruction(), ConstantFoldConstantExpressionImpl(), llvm::ConstantFoldExtractElementInstruction(), llvm::ConstantFoldGetElementPtr(), 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(), llvm::GetElementPtrConstantExpr::Create(), llvm::GetElementPtrInst::Create(), llvm::CallInst::Create(), llvm::InvokeInst::Create(), CreateAdd(), llvm::IRBuilder< true, TargetFolder >::CreateAlignmentAssumption(), llvm::IRBuilder< true, TargetFolder >::CreateAnd(), createAndInstr(), llvm::IRBuilder< true, TargetFolder >::CreateAShr(), llvm::IRBuilderBase::CreateAssumption(), llvm::CastInst::CreateBitOrPointerCast(), llvm::IRBuilder< true, TargetFolder >::CreateBitOrPointerCast(), llvm::TargetFolder::CreateCast(), llvm::IRBuilder< true, TargetFolder >::CreateCast(), createCast(), llvm::IRBuilder< true, TargetFolder >::CreateExtractInteger(), llvm::BinaryOperator::CreateFNeg(), llvm::TargetFolder::CreateFPCast(), llvm::CastInst::CreateFPCast(), llvm::IRBuilder< true, TargetFolder >::CreateFPCast(), createFree(), llvm::IRBuilderBase::CreateGCStatepointCall(), llvm::IRBuilderBase::CreateGCStatepointInvoke(), llvm::IRBuilderBase::CreateGlobalString(), 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(), createMaskedBitTest(), llvm::IRBuilderBase::CreateMaskedLoad(), llvm::IRBuilderBase::CreateMaskedStore(), 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(), llvm::InstCombiner::CreateOverflowTuple(), 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(), llvm::DecodePSHUFBMask(), llvm::DecodeVPERMILPMask(), DecomposeGEPExpression(), DecomposeSimpleLinearExpr(), llvm::DeleteDeadBlock(), deleteDeadInstruction(), DeleteInstructionInBlock(), llvm::DemotePHIToStack(), llvm::DemoteRegToStack(), determinePointerReadAttrs(), EliminateDeadSwitchCases(), llvm::EmitBinaryFloatFnCall(), emitDebugValueComment(), llvm::EmitFPutC(), llvm::EmitFPutS(), llvm::EmitFWrite(), llvm::EmitGEPOffset(), llvm::AsmPrinter::EmitGlobalConstant(), emitGlobalConstantArray(), emitGlobalConstantFP(), emitGlobalConstantImpl(), emitGlobalConstantStruct(), llvm::HexagonTargetLowering::emitLoadLinked(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::HexagonTargetLowering::emitStoreConditional(), 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::X86TargetLowering::ExpandInlineAsm(), llvm::expandRemainder(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), ExtractConstantBytes(), extractInteger(), extractVector(), llvm::FCmpInst::FCmpInst(), llvm::FindAvailableLoadedValue(), findBaseDefiningValue(), findBaseDefiningValueOfVector(), findBasePointer(), findCommonType(), llvm::FindInsertedValue(), FindLIVLoopCondition(), FindLoopCounter(), llvm::findScalarElement(), fixupFPReturnAndCall(), llvm::InstCombiner::FoldAndOfFCmps(), llvm::InstCombiner::FoldAndOfICmps(), FoldBitCast(), llvm::InstCombiner::FoldCmpLoadFromIndexedGlobal(), foldConstantCastPair(), llvm::InstCombiner::FoldFCmp_IntToFP_Cst(), llvm::InstCombiner::FoldGEPICmp(), llvm::InstCombiner::FoldICmpCstShlCst(), llvm::InstCombiner::FoldICmpCstShrCst(), llvm::InstCombiner::FoldICmpShrCst(), llvm::InstCombiner::FoldItoFPtoI(), foldLogOpOfMaskedICmps(), foldLogOpOfMaskedICmpsHelper(), FoldOperationIntoSelectOperand(), llvm::InstCombiner::FoldOrOfFCmps(), FoldReinterpretLoadFromConstPtr(), foldSelectICmpAndOr(), llvm::InstCombiner::FoldSelectOpOp(), llvm::InstCombiner::FoldShiftByConstant(), FoldTwoEntryPHINode(), foldUDivNegCst(), foldUDivPow2Cst(), foldUDivShl(), generateSignedDivisionCode(), generateSignedRemainderCode(), generateUnsignedDivisionCode(), genLoopLimit(), llvm::MemoryLocation::get(), llvm::ConstantVector::get(), llvm::ConstantExpr::get(), getAccessType(), llvm::IntToPtrInst::getAddressSpace(), llvm::ConstantExpr::getAddrSpaceCast(), getAdjustedAlignment(), 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::Argument::getDereferenceableOrNullBytes(), llvm::MemIntrinsic::getDestAddressSpace(), llvm::BitCastOperator::getDestTy(), getEdgeValueLocal(), llvm::ConstantAggregateZero::getElementValue(), llvm::UndefValue::getElementValue(), 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(), llvm::objcarc::GetFunctionClass(), llvm::GetElementPtrInst::getGEPReturnType(), llvm::ConstantExpr::getGetElementPtr(), GetHeapSROAValue(), 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(), getLogBase2Vector(), llvm::getMallocType(), GetMemInstValueForLoad(), getMemSetPatternValue(), llvm::getMergedGlobalExpr(), llvm::AliasAnalysis::getModRefInfo(), getNaturalGEPWithOffset(), getNaturalGEPWithType(), llvm::ConstantExpr::getNeg(), llvm::MemoryDependenceAnalysis::getNonLocalPointerDependency(), getNoopInput(), llvm::ConstantExpr::getNot(), llvm::ConstantAggregateZero::getNumElements(), llvm::UndefValue::getNumElements(), getOne(), llvm::DwarfCompileUnit::getOrCreateGlobalVariableDIE(), llvm::AArch64TTIImpl::getOrCreateResultFromMemIntrinsic(), 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(), GetRangeFromMetadata(), 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::ARMTargetLowering::getSingleConstraintMatchWeight(), llvm::SystemZTargetLowering::getSingleConstraintMatchWeight(), llvm::PPCTargetLowering::getSingleConstraintMatchWeight(), llvm::X86TargetLowering::getSingleConstraintMatchWeight(), llvm::TargetLowering::getSingleConstraintMatchWeight(), llvm::ConstantExpr::getSIToFP(), llvm::MemTransferInst::getSourceAddressSpace(), llvm::ConstantVector::getSplat(), llvm::ConstantDataVector::getSplat(), llvm::Constant::getSplatValue(), llvm::BitCastOperator::getSrcTy(), llvm::SelectionDAG::getSrcValue(), GetStoreValueForLoad(), llvm::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::InlineAsm::getType(), llvm::AllocaInst::getType(), llvm::ConstantInt::getType(), llvm::GlobalValue::getType(), llvm::ValueAsMetadata::getType(), llvm::ConstantArray::getType(), llvm::ConstantStruct::getType(), llvm::SCEVUnknown::getType(), llvm::ConstantVector::getType(), llvm::ConstantPointerNull::getType(), llvm::ConstantDataSequential::getType(), llvm::ConstantDataArray::getType(), llvm::ConstantDataVector::getType(), llvm::GetElementPtrInst::getType(), llvm::InsertElementInst::getType(), llvm::ShuffleVectorInst::getType(), llvm::ConstantExpr::getUIToFP(), llvm::GetUnderlyingObject(), getUnderlyingObjectFromInt(), getUnderlyingObjects(), getUniformBase(), llvm::getUniqueCastUse(), llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getUserCost(), llvm::SelectionDAGBuilder::getValue(), getValueAsDouble(), llvm::SelectionDAGBuilder::getValueImpl(), getVectorCallCost(), getVectorIntrinsicCost(), llvm::ExtractElementInst::getVectorOperandType(), llvm::ConstantExpr::getWithOperandReplaced(), llvm::ConstantExpr::getWithOperands(), llvm::ConstantExpr::getZExt(), llvm::ConstantExpr::getZExtOrBitCast(), llvm::GlobalVariable::GlobalVariable(), HandleByValArgument(), HandleByValArgumentInit(), llvm::ValueAsMetadata::handleDeletion(), llvm::ValueAsMetadata::handleRAUW(), llvm::Argument::hasByValAttr(), llvm::Argument::hasByValOrInAllocaAttr(), llvm::PHINode::hasConstantValue(), llvm::Argument::hasInAllocaAttr(), llvm::Argument::hasNestAttr(), llvm::Argument::hasNoAliasAttr(), llvm::Argument::hasNoCaptureAttr(), llvm::Argument::hasNonNullAttr(), hasSameExtUse(), llvm::Argument::hasStructRetAttr(), llvm::haveNoCommonBitsSet(), llvm::HexagonEvaluator::HexagonEvaluator(), HoistThenElseCodeToIf(), llvm::CompositeType::indexValid(), llvm::BinaryOperator::init(), INITIALIZE_PASS(), llvm::ExecutionEngine::InitializeMemory(), llvm::FunctionLoweringInfo::InitializeRegForValue(), llvm::InlineFunction(), insertFastDiv(), insertInteger(), insertParsePoints(), insertSinCosCall(), insertUniqueBackedgeBlock(), insertVector(), llvm::MemoryDependenceAnalysis::invalidateCachedPointerInfo(), llvm::isBytewiseValue(), isCompatibleIVType(), llvm::MipsTargetObjectFile::IsConstantInSmallSection(), IsConstantOffsetFromGlobal(), isDereferenceableFromAttribute(), llvm::isDereferenceablePointer(), isDereferenceablePointer(), isEliminableCastPair(), isExistingPhi(), llvm::TargetLoweringBase::isExtFree(), isFiniteNonZeroFp(), isGEPKnownNonNull(), isHighCostExpansion(), llvm::Instruction::isIdenticalToWhenDefined(), llvm::isImageOrSamplerVal(), llvm::isInductionPHI(), llvm::CastInst::isIntegerCast(), isIntegerWideningViableForSlice(), isInterestingPointer(), isIntExtFree(), isKnownNonZero(), isKnownToBeAPowerOfTwo(), llvm::CastInst::isLosslessCast(), llvm::Constant::isNegativeZeroValue(), llvm::CastInst::isNoopCast(), isNormalFp(), IsNullTerminatedString(), isPointerOperand(), llvm::objcarc::IsPotentialRetainableObjPtr(), llvm::AArch64TargetLowering::isProfitableToHoist(), llvm::RecurrenceDescriptor::isRecurrenceInstr(), isRepeatedByteSequence(), isSafeToEliminateVarargsCast(), llvm::isSafeToLoadUnconditionally(), llvm::Instruction::isSameOperationAs(), isShuffleExtractingFromLHS(), isSimpleEnoughPointerToCommit(), isSimpleEnoughValueToCommitHelper(), isSimpleIVUser(), llvm::isStridedPtr(), isUndefShift(), llvm::ExtractElementInst::isValidOperands(), llvm::InsertElementInst::isValidOperands(), llvm::ShuffleVectorInst::isValidOperands(), isVectorPromotionViable(), isVectorPromotionViableForSlice(), isZero(), LinearizeExprTree(), LLVMConstRealGetDouble(), llvm::LoadAndStorePromoter::LoadAndStorePromoter(), llvm::LoadInst::LoadInst(), lookThroughCast(), LowerAtomicCmpXchgInst(), LowerBSWAP(), llvm::FastISel::lowerCall(), llvm::SelectionDAGBuilder::lowerCallOperands(), llvm::FastISel::lowerCallTo(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::AsmPrinter::lowerConstant(), LowerCTLZ(), LowerCTPOP(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::lowerInterleavedStore(), llvm::IntrinsicLowering::LowerIntrinsicCall(), LowerNegateToMultiply(), llvm::IntrinsicLowering::LowerToByteSwap(), llvm::MapValue(), matchPairwiseReduction(), matchPairwiseReductionAtLevel(), MatchSelectFromAndOr(), llvm::matchSelectPattern(), matchVectorSplittingReduction(), llvm::MergeBasicBlockIntoOnlyPred(), mergeEmptyReturnBlocks(), needsFPFromSig(), OptimizeAndOrXor(), OptimizeAwayTrappingUsesOfValue(), OptimizeExtractBits(), OptimizeGlobalAddressOfMalloc(), OptimizeIntegerToVectorInsertions(), OptimizeIntToFloatBitCast(), OptimizeNoopCopyExpression(), OptimizeOnceStoredGlobal(), OptimizeVectorResize(), llvm::TargetLowering::ParseConstraints(), PerformHeapAllocSRoA(), llvm::PointerMayBeCaptured(), prepareICWorklistFromFunction(), printAsOperandImpl(), processInstruction(), ProcessUGT_ADDCST_ADD(), ProcessUMulZExtIdiom(), llvm::promoteLoopAccessesToScalars(), promoteSingleBlockAlloca(), PushValueAndType(), ReadDataFromGlobal(), llvm::RemapInstruction(), llvm::AliasSetTracker::remove(), RemoveDeadConstant(), llvm::PHINode::removeIncomingValue(), llvm::MemoryDependenceAnalysis::removeInstruction(), removeLifetimeIntrinsicUsers(), replaceAllUsesWith(), llvm::SCEVExpander::replaceCongruentIVs(), llvm::replaceDominatedUsesWith(), ReplaceFPIntrinsicWithCall(), llvm::InstCombiner::ReplaceInstUsesWith(), llvm::replaceSymbolicStrideSCEV(), replaceUsesOutsideBlock(), ReplaceWithStatepoint(), llvm::returnTypeIsEligibleForTailCall(), reuseTableCompare(), RewriteHeapSROALoadUser(), rewriteSingleStoreAlloca(), RewriteUsesOfClonedInstructions(), llvm::TypeFinder::run(), llvm::Interpreter::run(), llvm::LoadAndStorePromoter::run(), scalarConstantToHexString(), ScalarizeMaskedLoad(), ScalarizeMaskedStore(), 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::CallInst::setCalledFunction(), llvm::InvokeInst::setCalledFunction(), llvm::MemIntrinsic::setDest(), llvm::GlobalVariable::setInitializer(), llvm::MemIntrinsic::setLength(), llvm::MemTransferInst::setSource(), llvm::MemSetInst::setValue(), shorter_filter(), shouldConvert(), llvm::HexagonTargetLowering::shouldExpandAtomicLoadInIR(), llvm::AArch64TargetLowering::shouldExpandAtomicLoadInIR(), llvm::ARMTargetLowering::shouldExpandAtomicLoadInIR(), llvm::AArch64TargetLowering::shouldExpandAtomicRMWInIR(), llvm::ARMTargetLowering::shouldExpandAtomicRMWInIR(), llvm::HexagonTargetLowering::shouldExpandAtomicStoreInIR(), llvm::AArch64TargetLowering::shouldExpandAtomicStoreInIR(), llvm::ARMTargetLowering::shouldExpandAtomicStoreInIR(), SimplifyAddInst(), simplifyAllocaArraySize(), SimplifyAndInst(), SimplifyAndOfICmps(), SimplifyAShrInst(), SimplifyBinOp(), SimplifyBranchOnICmpChain(), SimplifyCall(), SimplifyDiv(), SimplifyExtractElementInst(), SimplifyFAddInst(), SimplifyFDivInst(), SimplifyFSubInst(), SimplifyGEPInst(), SimplifyICmpInst(), SimplifyInsertValueInst(), llvm::SimplifyInstruction(), SimplifyMulInst(), simplifyOneLoop(), SimplifyOrInst(), SimplifyOrOfICmps(), SimplifyPHINode(), simplifyRelocatesOffABase(), SimplifyRem(), SimplifyRightShift(), SimplifySelectInst(), SimplifyShift(), SimplifyShlInst(), SimplifySubInst(), simplifyUnsignedRangeCheck(), SimplifyX86insertps(), SimplifyX86vperm2(), SimplifyXorInst(), sink(), SinkCast(), SinkShiftAndTruncate(), SinkThenElseCodeToEnd(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), speculatePHINodeLoads(), llvm::SplitLandingPadPredecessors(), splitVectorValues(), stripAndAccumulateInBoundsConstantOffsets(), stripAndComputeConstantOffsets(), StripPtrCastKeepAS(), llvm::SubOne(), SubWithOverflow(), swapMayExposeCSEOpportunities(), SymbolicallyEvaluateBinop(), SymbolicallyEvaluateGEP(), ThreadCmpOverSelect(), tryToMakeAllocaBePromotable(), TryToOptimizeStoreOfMallocToGlobal(), TryToShrinkGlobalToBoolean(), TurnSwitchRangeIntoICmp(), underlyingObjectsAlias(), unpackLoadToAggregate(), unpackStoreToAggregate(), UpdatePHINodes(), llvm::UpgradeBitCastExpr(), llvm::UpgradeBitCastInst(), llvm::UpgradeIntrinsicCall(), valueHasFloatPrecision(), 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::Interpreter::visitAShr(), llvm::InstCombiner::visitAShr(), llvm::Interpreter::visitBinaryOperator(), llvm::InstCombiner::visitBitCast(), llvm::Interpreter::visitBitCastInst(), 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::Interpreter::visitFPExtInst(), llvm::Interpreter::visitFPToSIInst(), 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::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::visitShuffleVectorInst(), llvm::Interpreter::visitSIToFPInst(), llvm::SelectionDAGBuilder::visitSPDescriptorParent(), llvm::InstCombiner::visitSRem(), llvm::Interpreter::visitStoreInst(), llvm::InstCombiner::visitStoreInst(), llvm::InstCombiner::visitSub(), llvm::Interpreter::visitSwitchInst(), llvm::InstCombiner::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(), WriteAsOperandInternal(), WriteConstantInternal(), WriteConstants(), WriteInstruction(), WriteValueAsMetadata(), 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 362 of file Value.h.
Referenced by llvm::GlobalObject::classof(), llvm::GlobalAlias::classof(), llvm::Argument::classof(), llvm::Constant::classof(), llvm::GlobalVariable::classof(), llvm::InlineAsm::classof(), llvm::MetadataAsValue::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::ConstantVector::classof(), llvm::Function::classof(), llvm::ConstantPointerNull::classof(), llvm::ConstantDataSequential::classof(), llvm::ConstantDataArray::classof(), llvm::ConstantDataVector::classof(), llvm::BlockAddress::classof(), llvm::ConstantExpr::classof(), llvm::UndefValue::classof(), llvm::Constant::destroyConstant(), 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::Instruction::getOpcode(), llvm::Constant::handleOperandChange(), and llvm::GlobalValue::setThreadLocalMode().
| ValueName * Value::getValueName | ( | ) | const |
Definition at line 160 of file Value.cpp.
References getContext(), HasName, I, llvm::LLVMContext::pImpl, and llvm::LLVMContextImpl::ValueNames.
Referenced by llvm::TargetIntrinsicInfo::getIntrinsicID(), getName(), llvm::Function::recalculateIntrinsicID(), and takeName().
|
inline |
Definition at line 228 of file Value.h.
References HasName.
Referenced by AddAliasScopeMetadata(), llvm::canConstantFoldCallTo(), llvm::CloneBasicBlock(), llvm::ConstantFoldCall(), llvm::ExecutionEngine::emitGlobals(), findBasePointer(), FoldBlockIntoPredecessor(), llvm::ExecutionEngine::getMangledName(), getName(), llvm::Mangler::getNameWithPrefix(), llvm::getSamplerName(), llvm::getSurfaceName(), llvm::getTextureName(), insertIfNamed(), insertRelocationStores(), llvm::TargetTransformInfoImplBase::isLoweredToCall(), llvm::MergeBlockIntoPredecessor(), llvm::orc::GlobalRenamer::needsRenaming(), false::operator<<(), order_by_name(), llvm::ValueEnumerator::print(), llvm::SparseSolver::Print(), printWithoutType(), llvm::ReplaceInstWithValue(), ReplaceWithStatepoint(), llvm::FastISel::selectInstruction(), and takeName().
Return true if this Value has exactly N users.
Definition at line 96 of file Value.cpp.
References N, use_begin(), and use_end().
Referenced by makeStatepointExplicitImpl().
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 N, use_begin(), and use_end().
Referenced by hasMoreThanOneUseOtherThanLLVMUsed(), ProcessUMulZExtIdiom(), llvm::BasicBlock::removePredecessor(), replaceConstantExprOp(), and SRAGlobal().
|
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 311 of file Value.h.
References I, use_begin(), and use_end().
Referenced by CanEvaluateSExtd(), CanEvaluateShifted(), CanEvaluateShuffled(), CanEvaluateTruncated(), CanEvaluateZExtd(), CheapToScalarize(), checkForNegativeOperand(), CollectInsertionElements(), combineLoadToOperationType(), CombineUAddWithOverflow(), computeKnownBitsFromDominatingCondition(), DeadPHICycle(), detectLog2OfHalf(), dyn_castNotVal(), emitGlobalConstantImpl(), 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(), isKnownNonNullFromDominatingCondition(), llvm::RecurrenceDescriptor::isMinMaxSelectCmpPattern(), isReassociableOp(), IsSafeComputationToRemove(), LinearizeExprTree(), makeStatepointExplicitImpl(), ProcessUGT_ADDCST_ADD(), llvm::InstCombiner::run(), ShouldBreakUpSubtract(), shouldMergeGEPs(), llvm::InstCombiner::SimplifyDivRemOfSelect(), simplifyValueKnownNonZero(), SinkThenElseCodeToEnd(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), SwitchToLookupTable(), tryFactorization(), llvm::FastISel::tryToFoldLoad(), TryToSimplifyUncondBranchWithICmpInIt(), TryToSinkInstruction(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitAnd(), llvm::InstCombiner::visitBranchInst(), llvm::InstCombiner::visitExtractElementInst(), llvm::InstCombiner::visitFCmpInst(), 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::visitSExt(), llvm::InstCombiner::visitStoreInst(), llvm::InstCombiner::visitSub(), llvm::InstCombiner::visitTrunc(), llvm::InstCombiner::visitXor(), and llvm::InstCombiner::visitZExt().
Check the optional flags for equality.
Definition at line 379 of file Value.h.
References SubclassOptionalData.
|
inline |
Clear any optional flags not set in the given Value.
Definition at line 384 of file Value.h.
References SubclassOptionalData.
Referenced by HoistThenElseCodeToIf(), and SinkThenElseCodeToEnd().
|
inline |
Return true if there is metadata referencing this value.
Definition at line 392 of file Value.h.
References IsUsedByMD.
Referenced by replaceAllUsesWith(), and ~Value().
| bool Value::isUsedInBasicBlock | ( | const BasicBlock * | BB | ) | const |
Check if this value is used in the specified basic block.
Definition at line 113 of file Value.cpp.
References llvm::BasicBlock::begin(), llvm::dyn_cast(), llvm::BasicBlock::end(), llvm::Instruction::getParent(), user_begin(), and user_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 471 of file Value.h.
Referenced by llvm::CallInst::mutateFunctionType(), and llvm::RemapInstruction().
| void Value::print | ( | raw_ostream & | O | ) | const |
Implement operator<< on Value.
Definition at line 3209 of file AsmWriter.cpp.
References getModuleFromVal(), and isReferencingMDNode().
Referenced by dump(), llvm::operator<<(), print(), llvm::AliasSetTracker::print(), and llvm::InstCombiner::run().
| void Value::print | ( | raw_ostream & | O, |
| ModuleSlotTracker & | MST | ||
| ) | const |
Definition at line 3220 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(), printAsOperand(), 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 3287 of file AsmWriter.cpp.
References getModuleFromVal(), Machine, printAsOperandImpl(), and printWithoutType().
Referenced by llvm::AsmPrinter::EmitGlobalVariable(), llvm::DOTGraphTraits< const Function * >::getCompleteNodeLabel(), llvm::DOTGraphTraits< const Function * >::getSimpleNodeLabel(), llvm::AsmPrinter::lowerConstant(), llvm::SCEV::print(), llvm::AliasSet::print(), print(), PrintModRefResults(), and PrintResults().
| void Value::printAsOperand | ( | raw_ostream & | O, |
| bool | PrintType, | ||
| ModuleSlotTracker & | MST | ||
| ) | const |
Definition at line 3302 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 351 of file Value.cpp.
References llvm::C, contains(), getType(), llvm::Use::getUser(), llvm::ValueAsMetadata::handleRAUW(), isUsedByMetadata(), llvm::Use::set(), use_empty(), and llvm::ValueHandleBase::ValueIsRAUWd().
Referenced by AddReachableCodeToWorklist(), changeToCall(), checkCSEInPredecessor(), CleanupConstantGlobalUsers(), llvm::CloneAndPruneIntoFromInst(), combineLoadToOperationType(), CombineUAddWithOverflow(), ConvertShiftToMul(), cse(), llvm::DeleteDeadBlock(), deleteDeadInstruction(), DeleteInstructionInBlock(), llvm::DemotePHIToStack(), llvm::EliminateDuplicatePHINodes(), llvm::objcarc::EraseInstruction(), llvm::expandDivision(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), llvm::expandRemainder(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), findPHIToPartitionLoops(), FoldBlockIntoPredecessor(), FoldTwoEntryPHINode(), GetLoadValueForLoad(), HandleCallsInBlockInlinedThroughInvoke(), llvm::Constant::handleOperandChange(), llvm::hoistRegion(), HoistThenElseCodeToIf(), INITIALIZE_PASS(), InlineCallIfPossible(), llvm::InlineFunction(), insertFastDiv(), LowerAtomicCmpXchgInst(), LowerAtomicRMWInst(), lowerExpectIntrinsic(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::ARMTargetLowering::lowerInterleavedLoad(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::IntrinsicLowering::LowerToByteSwap(), makeStatepointExplicitImpl(), llvm::MergeBasicBlockIntoOnlyPred(), llvm::MergeBlockIntoPredecessor(), mergeEmptyReturnBlocks(), llvm::LibCallSimplifier::optimizeCall(), OptimizeGlobalAddressOfMalloc(), patchAndReplaceAllUsesWith(), prepareICWorklistFromFunction(), promoteSingleBlockAlloca(), llvm::PHINode::removeIncomingValue(), llvm::BasicBlock::removePredecessor(), replaceAndRecursivelySimplifyImpl(), ReplaceCallWith(), llvm::SCEVExpander::replaceCongruentIVs(), llvm::InstCombiner::ReplaceInstUsesWith(), llvm::ReplaceInstWithValue(), ReplaceUsesOfWith(), reuseTableCompare(), RewriteHeapSROALoadUser(), rewriteSingleStoreAlloca(), llvm::LoadAndStorePromoter::run(), llvm::InstCombiner::run(), ScalarizeMaskedLoad(), simplifyOneLoop(), sink(), 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::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 384 of file Value.cpp.
References contains(), llvm::dyn_cast(), getType(), llvm::Use::getUser(), llvm::Use::set(), use_begin(), and use_end().
Referenced by llvm::InstCombiner::replacedSelectWithOperand().
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 250 of file Value.cpp.
References F().
Referenced by llvm::AllocaInst::AllocaInst(), llvm::Argument::Argument(), llvm::BinaryOperator::BinaryOperator(), llvm::CloneBasicBlock(), CloneInstructionInExitBlock(), llvm::CmpInst::CmpInst(), FoldBlockIntoPredecessor(), llvm::FoldBranchToCommonDest(), FoldCondBranchOnPHI(), forceRenaming(), generateUnsignedDivisionCode(), llvm::GlobalValue::GlobalValue(), INITIALIZE_PASS(), llvm::IRBuilderDefaultInserter< true >::InsertHelper(), llvm::LoadInst::LoadInst(), llvm::IntrinsicLowering::LowerIntrinsicCall(), NegateValue(), llvm::orc::raiseVisibilityOnValue(), rematerializeLiveValues(), ReplaceCallWith(), llvm::ShuffleVectorInst::ShuffleVectorInst(), llvm::SplitLandingPadPredecessors(), StripSymtab(), SwitchToLookupTable(), takeName(), llvm::UpgradeIntrinsicCall(), UpgradeIntrinsicFunction1(), UpgradeSSE41Function(), UpgradeX86IntrinsicsWith8BitMask(), and llvm::LoopVersioning::versionLoop().
| void Value::setValueName | ( | ValueName * | VN | ) |
Definition at line 171 of file Value.cpp.
References getContext(), HasName, llvm::LLVMContext::pImpl, and llvm::LLVMContextImpl::ValueNames.
Referenced by takeName().
|
inlineprotected |
| void llvm::Value::sortUseList | ( | Compare | Cmp | ) |
| Value * Value::stripAndAccumulateInBoundsConstantOffsets | ( | const DataLayout & | DL, |
| APInt & | Offset | ||
| ) |
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 470 of file Value.cpp.
References GEP, llvm::APInt::getBitWidth(), llvm::Operator::getOpcode(), llvm::DataLayout::getPointerSizeInBits(), getType(), llvm::SmallPtrSetImpl< PtrType >::insert(), and llvm::Type::isPointerTy().
Referenced by llvm::GlobalAlias::getBaseObject(), llvm::isDereferenceablePointer(), and stripAndAccumulateInBoundsConstantOffsets().
|
inline |
Definition at line 430 of file Value.h.
References stripAndAccumulateInBoundsConstantOffsets().
| Value * Value::stripInBoundsConstantOffsets | ( | ) |
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 466 of file Value.cpp.
Referenced by stripInBoundsConstantOffsets().
Definition at line 417 of file Value.h.
References stripInBoundsConstantOffsets().
| Value * Value::stripInBoundsOffsets | ( | ) |
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 507 of file Value.cpp.
Referenced by llvm::GlobalAlias::getBaseObject(), and stripInBoundsOffsets().
Definition at line 441 of file Value.h.
References stripInBoundsOffsets().
| Value * Value::stripPointerCasts | ( | ) |
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 458 of file Value.cpp.
Referenced by llvm::AddLandingPadInfo(), llvm::classifyEHPersonality(), 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(), llvm::FindAvailableLoadedValue(), findBasePointer(), FindInitTrampoline(), FindInitTrampolineFromAlloca(), findUsedValues(), llvm::InstCombiner::FoldGEPICmp(), getCalledFunction(), llvm::getConstantStringInfo(), llvm::MemIntrinsic::getDest(), getKnownConstant(), llvm::InstrProfIncrementInst::getName(), llvm::objcarc::GetRCIdentityRoot(), llvm::MemTransferInst::getSource(), GetStringLengthH(), hasNoAliasAttr(), isObjectSizeLessThanOrEq(), isOverwrite(), IsPointerOffset(), llvm::isSafeToLoadUnconditionally(), OptimizeOnceStoredGlobal(), llvm::FastISel::selectPatchpoint(), llvm::skipPointerTransfer(), llvm::Constant::stripPointerCasts(), stripPointerCasts(), llvm::InstCombiner::visitGetElementPtrInst(), and llvm::InstCombiner::visitLandingPadInst().
Definition at line 399 of file Value.h.
References stripPointerCasts().
| Value * Value::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 462 of file Value.cpp.
Referenced by llvm::collectUsedGlobalVariables(), FindUsedValues(), and stripPointerCastsNoFollowAliases().
Definition at line 408 of file Value.h.
References 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 256 of file Value.cpp.
References getSymTab(), getValueName(), hasName(), setName(), llvm::StringMapEntry< ValueTy >::setValue(), and setValueName().
Referenced by ConvertShiftToMul(), llvm::FoldBranchToCommonDest(), llvm::InstCombiner::FoldSelectIntoOp(), llvm::InstCombiner::FoldShiftByConstant(), FoldTwoEntryPHINode(), forceRenaming(), GetLoadValueForLoad(), HoistThenElseCodeToIf(), LowerNegateToMultiply(), makeStatepointExplicitImpl(), llvm::MergeBlockIntoPredecessor(), llvm::ReplaceInstWithValue(), setUsedInitializer(), simplifyRelocatesOffABase(), tryFactorization(), tryToMakeAllocaBePromotable(), TryToShrinkGlobalToBoolean(), upgradeGlobalArray(), llvm::InstCombiner::visitFMul(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::InstCombiner::visitICmpInstWithInstAndIntCst(), llvm::InstCombiner::visitMul(), llvm::InstCombiner::visitOr(), llvm::InstCombiner::visitTrunc(), and llvm::InstCombiner::visitXor().
|
inline |
Definition at line 279 of file Value.h.
Referenced by getNumUses(), hasNUses(), hasNUsesOrMore(), hasOneUse(), LLVMGetFirstUse(), OptimizeGlobalAddressOfMalloc(), predictValueUseListOrder(), llvm::ValueEnumerator::print(), llvm::replaceDominatedUsesWith(), ReplaceUsesOfMallocWithGlobal(), replaceUsesOutsideBlock(), RewriteUsesOfClonedInstructions(), llvm::InstCombiner::run(), and uses().
|
inline |
|
inline |
Definition at line 275 of file Value.h.
Referenced by AddReachableCodeToWorklist(), llvm::RecurrenceDescriptor::AddReductionVar(), combineLoadToOperationType(), llvm::SelectionDAGBuilder::CopyToExportRegsIfNeeded(), DeadPHICycle(), llvm::DeleteDeadBlock(), DeleteDeadInstruction(), DeleteInstructionInBlock(), llvm::DemotePHIToStack(), llvm::DemoteRegToStack(), llvm::Constant::destroyConstant(), llvm::AsmPrinter::doFinalization(), llvm::InstCombiner::EraseInstFromFunction(), llvm::objcarc::EraseInstruction(), getAdjustedPtr(), hasAddressTakenAndUsed(), hasSameExtUse(), hasUseOtherThanLLVMUsed(), INITIALIZE_PASS(), llvm::InlineFunction(), llvm::isInstructionTriviallyDead(), isOnlyUsedInEntryBlock(), isUsedOutsideOfDefiningBlock(), LinearizeExprTree(), llvm::IntrinsicLowering::LowerIntrinsicCall(), OptimizeAwayTrappingUsesOfLoads(), OptimizeExtractBits(), OptimizeGlobalAddressOfMalloc(), passingValueIsAlwaysUndefined(), predictValueUseListOrder(), prepareICWorklistFromFunction(), llvm::promoteLoopAccessesToScalars(), promoteSingleBlockAlloca(), llvm::RecursivelyDeleteTriviallyDeadInstructions(), RemoveDeadConstant(), removeDeadUsersOfConstant(), replaceAllUsesWith(), ReplaceCallWith(), llvm::InstCombiner::ReplaceInstUsesWith(), ReplaceUsesOfMallocWithGlobal(), ReplaceWithStatepoint(), RewriteUsesOfClonedInstructions(), RewriteUsesOfLoadForHeapSRoA(), llvm::LoadAndStorePromoter::run(), llvm::InstCombiner::run(), llvm::Inliner::runOnSCC(), llvm::FastISel::selectIntrinsicCall(), llvm::FunctionLoweringInfo::set(), llvm::FastISel::CallLoweringInfo::setCallee(), llvm::TargetLowering::CallLoweringInfo::setCallee(), llvm::InstCombiner::SimplifyDivRemOfSelect(), sink(), SinkCast(), SinkCmpExpression(), SinkThenElseCodeToEnd(), speculatePHINodeLoads(), speculateSelectInstLoads(), SRAGlobal(), tryToMakeAllocaBePromotable(), TryToShrinkGlobalToBoolean(), llvm::PtrUseVisitor< SliceBuilder >::visitGetElementPtrInst(), llvm::BasicBlock::~BasicBlock(), and ~Value().
|
inline |
Definition at line 281 of file Value.h.
Referenced by getNumUses(), hasNUses(), hasNUsesOrMore(), hasOneUse(), LLVMGetFirstUse(), predictValueUseListOrder(), llvm::ValueEnumerator::print(), llvm::replaceDominatedUsesWith(), replaceUsesOutsideBlock(), RewriteUsesOfClonedInstructions(), and uses().
|
inline |
|
inline |
Definition at line 298 of file Value.h.
References user_begin().
Referenced by llvm::Constant::destroyConstant(), emitGlobalConstantImpl(), FindInitTrampolineFromAlloca(), OptimizeGlobalAddressOfMalloc(), removeDeadUsersOfConstant(), SRAGlobal(), TryToShrinkGlobalToBoolean(), llvm::InstCombiner::visitInsertValueInst(), and llvm::BasicBlock::~BasicBlock().
Definition at line 299 of file Value.h.
References user_begin().
|
inline |
Definition at line 294 of file Value.h.
Referenced by areAllUsesEqual(), CleanupConstantGlobalUsers(), CleanupPointerRootUsers(), combineLoadToOperationType(), CombineUAddWithOverflow(), ConstantPropUsersOf(), llvm::getMallocType(), hasSameExtUse(), llvm::FastISel::hasTrivialKill(), INITIALIZE_PASS(), llvm::RecurrenceDescriptor::isMinMaxSelectCmpPattern(), isUsedInBasicBlock(), makeStatepointExplicitImpl(), OptimizeAwayTrappingUsesOfLoads(), OptimizeAwayTrappingUsesOfValue(), OptimizeExtractBits(), passingValueIsAlwaysUndefined(), PerformHeapAllocSRoA(), promoteSingleBlockAlloca(), relocationViaAlloca(), llvm::Constant::removeDeadConstantUsers(), removeLifetimeIntrinsicUsers(), replaceConstantExprOp(), ReplaceUsesOfMallocWithGlobal(), RewriteHeapSROALoadUser(), rewriteSingleStoreAlloca(), RewriteUsesOfLoadForHeapSRoA(), llvm::InstCombiner::run(), sink(), SinkCast(), SinkCmpExpression(), SinkShiftAndTruncate(), SwitchToLookupTable(), tryToMakeAllocaBePromotable(), llvm::UpgradeCallsToIntrinsic(), llvm::Instruction::user_back(), user_back(), users(), llvm::InstCombiner::visitFCmpInst(), and llvm::InstCombiner::visitICmpInst().
|
inline |
|
inline |
Definition at line 296 of file Value.h.
Referenced by areAllUsesEqual(), CleanupConstantGlobalUsers(), CleanupPointerRootUsers(), combineLoadToOperationType(), ConstantPropUsersOf(), llvm::getMallocType(), INITIALIZE_PASS(), isUsedInBasicBlock(), OptimizeAwayTrappingUsesOfLoads(), OptimizeAwayTrappingUsesOfValue(), OptimizeExtractBits(), PerformHeapAllocSRoA(), promoteSingleBlockAlloca(), relocationViaAlloca(), llvm::Constant::removeDeadConstantUsers(), removeLifetimeIntrinsicUsers(), replaceConstantExprOp(), RewriteHeapSROALoadUser(), rewriteSingleStoreAlloca(), RewriteUsesOfLoadForHeapSRoA(), SinkCast(), SinkCmpExpression(), SinkShiftAndTruncate(), llvm::UpgradeCallsToIntrinsic(), and users().
|
inline |
|
inline |
Definition at line 300 of file Value.h.
References user_begin(), and user_end().
Referenced by llvm::LoopVersioning::addPHINodes(), llvm::RecurrenceDescriptor::AddReductionVar(), llvm::InstCombineWorklist::AddUsersToWorkList(), AllCallersPassInValidPointerForArgument(), AllGlobalLoadUsesSimpleEnoughForHeapSRA(), AllUsesOfLoadedValueWillTrapIfNull(), AllUsesOfValueWillTrapIfNull(), AlmostDeadIV(), BlockIsSimpleEnoughToThreadThrough(), ChangeCalleesToFastCall(), collectUsesWithPtrTypes(), completeEphemeralValues(), computeKnownBitsFromDominatingCondition(), llvm::InstCombiner::dominatesAllUses(), enqueueUsersInWorklist(), llvm::FindAllocaDbgDeclare(), FindInitTrampolineFromAlloca(), llvm::CodeExtractor::findInputsOutputs(), FindSingleUseIdentifiedObject(), getModuleFromVal(), getNumGlobalVariableUses(), getPreferredExtendForValue(), llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallSiteTy >::getRelocates(), llvm::getUniqueCastUse(), GlobalUsersSafeToSRA(), hasLifetimeMarkers(), hasOutsideLoopUser(), hasSameExtUse(), hasUsesOutsideLoop(), llvm::isAllocaPromotable(), isAllocSiteRemovable(), llvm::Constant::isConstantUsed(), llvm::Function::isDefTriviallyDead(), isEphemeralValueOf(), isGOTEquivalentCandidate(), isHighCostExpansion(), isKnownNonNullFromDominatingCondition(), isLoopIncrement(), isNotUsedInLoop(), isOnlyUsedInEntryBlock(), isOnlyUsedInEqualityComparison(), isOnlyUsedInZeroEqualityComparison(), IsOnlyUsedInZeroEqualityComparison(), isSafeAndProfitableToSinkLoad(), isSafePHIToSpeculate(), isSafeSelectToSpeculate(), isSafeSROAElementUse(), llvm::isSafeToDestroyConstant(), isUsedByLifetimeMarker(), isUsedOutsideOfDefiningBlock(), IsUserOfGlobalSafeForSRA(), LoadUsesSimpleEnoughForHeapSRA(), llvm::LowerDbgDeclare(), NegateValue(), OnlyUsedBy(), llvm::onlyUsedByLifetimeMarkers(), ProcessUGT_ADDCST_ADD(), ProcessUMulZExtIdiom(), llvm::promoteLoopAccessesToScalars(), promoteSingleBlockAlloca(), PushDefUseChildren(), pushIVUsers(), relocationViaAlloca(), RemoveNestAttribute(), replaceAndRecursivelySimplifyImpl(), ReplaceUsesOfWith(), rewriteNonInstructionUses(), shouldSpeculateInstrs(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), llvm::SparseSolver::Solve(), splitVectorValues(), swapMayExposeCSEOpportunities(), SwitchToLookupTable(), tryPromoteAllocaToVector(), tryToMakeAllocaBePromotable(), TryToShrinkGlobalToBoolean(), usedInGlobalVarDef(), usedInOneFunc(), useFuncSeen(), ValueIsOnlyUsedLocallyOrStoredToOneGlobal(), llvm::InstCombiner::visitShuffleVectorInst(), and ~Value().
|
inline |
Definition at line 303 of file Value.h.
References user_begin(), and user_end().
|
inline |
Definition at line 283 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().
|
inline |
Definition at line 286 of file Value.h.
References use_begin(), and use_end().
|
friend |
|
friend |
|
protected |
Definition at line 112 of file Value.h.
Referenced by llvm::User::allocHungoffUses(), llvm::User::getOperandList(), llvm::User::growHungoffUses(), llvm::User::operator delete(), llvm::User::operator new(), llvm::User::setNumHungOffUseOperands(), and llvm::User::User().
|
protected |
Definition at line 111 of file Value.h.
Referenced by getValueName(), hasName(), and setValueName().
|
protected |
Definition at line 110 of file Value.h.
Referenced by llvm::ValueAsMetadata::get(), llvm::ValueAsMetadata::handleRAUW(), and isUsedByMetadata().
Definition at line 463 of file Value.h.
Referenced by llvm::getOrEnforceKnownAlignment(), llvm::GlobalObject::setAlignment(), llvm::AllocaInst::setAlignment(), llvm::LoadInst::setAlignment(), llvm::StoreInst::setAlignment(), and WriteInstruction().
|
protected |
Definition at line 108 of file Value.h.
Referenced by llvm::User::getNumOperands(), llvm::User::getOperand(), llvm::User::getOperandUse(), llvm::User::op_end(), llvm::User::operator delete(), llvm::User::operator new(), llvm::User::setFunctionNumOperands(), llvm::User::setGlobalVariableNumOperands(), llvm::User::setNumHungOffUseOperands(), llvm::User::setOperand(), and llvm::User::User().
|
protected |
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 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().
1.8.6