LLVM  4.0.0
Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Types | Protected Member Functions | Protected Attributes | Friends | List of all members
llvm::Value Class Reference

LLVM Value Representation. More...

#include <Value.h>

Inheritance diagram for llvm::Value:
[legend]
Collaboration diagram for llvm::Value:
[legend]

Public Types

enum  ValueTy
 Concrete subclass of this. More...
 
typedef use_iterator_impl< Useuse_iterator
 
typedef use_iterator_impl
< const Use
const_use_iterator
 
typedef user_iterator_impl< Useruser_iterator
 
typedef user_iterator_impl
< const User
const_user_iterator
 

Public Member Functions

 Value (const Value &)=delete
 
void operator= (const Value &)=delete
 
virtual ~Value ()
 
void dump () const
 Support for debugging, callable in GDB: V->dump() More...
 
TypegetType () const
 All values are typed, get the type of this value. More...
 
LLVMContextgetContext () const
 All values hold a context through their type. More...
 
bool hasName () const
 
ValueNamegetValueName () 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 replaceNonMetadataUsesWith (Value *V)
 Change non-metadata 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...
 
void assertModuleIsMaterialized () const
 
bool use_empty () const
 
use_iterator materialized_use_begin ()
 
const_use_iterator materialized_use_begin () const
 
use_iterator use_begin ()
 
const_use_iterator use_begin () const
 
use_iterator use_end ()
 
const_use_iterator use_end () const
 
iterator_range< use_iteratormaterialized_uses ()
 
iterator_range
< const_use_iterator
materialized_uses () const
 
iterator_range< use_iteratoruses ()
 
iterator_range
< const_use_iterator
uses () const
 
bool user_empty () const
 
user_iterator materialized_user_begin ()
 
const_user_iterator materialized_user_begin () const
 
user_iterator user_begin ()
 
const_user_iterator user_begin () const
 
user_iterator user_end ()
 
const_user_iterator user_end () const
 
Useruser_back ()
 
const Useruser_back () const
 
iterator_range< user_iteratormaterialized_users ()
 
iterator_range
< const_user_iterator
materialized_users () const
 
iterator_range< user_iteratorusers ()
 
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...
 
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...
 
bool isSwiftError () const
 Return true if this value is a swifterror value. More...
 
ValuestripPointerCasts ()
 Strip off pointer casts, all-zero GEPs, and aliases. More...
 
const ValuestripPointerCasts () const
 
ValuestripPointerCastsNoFollowAliases ()
 Strip off pointer casts and all-zero GEPs. More...
 
const ValuestripPointerCastsNoFollowAliases () const
 
ValuestripInBoundsConstantOffsets ()
 Strip off pointer casts and all-constant inbounds GEPs. More...
 
const ValuestripInBoundsConstantOffsets () const
 
ValuestripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset)
 Accumulate offsets from stripInBoundsConstantOffsets(). More...
 
const ValuestripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset) const
 
ValuestripInBoundsOffsets ()
 Strip off pointer casts and inbounds GEPs. More...
 
const ValuestripInBoundsOffsets () const
 
unsigned getPointerDereferenceableBytes (const DataLayout &DL, bool &CanBeNull) const
 Returns the number of bytes known to be dereferenceable for the pointer value. More...
 
unsigned getPointerAlignment (const DataLayout &DL) const
 Returns an alignment of the pointer value. More...
 
ValueDoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB)
 Translate PHI node to its predecessor from the given basic block. More...
 
const ValueDoPHITranslation (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, bool IsForDebug=false) const
 Implement operator<< on Value. More...
 
void print (raw_ostream &O, ModuleSlotTracker &MST, bool IsForDebug=false) 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 = 28 }
 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
 
unsigned IsUsedByMD: 1
 
unsigned HasName: 1
 
unsigned HasHungOffUses: 1
 
unsigned HasDescriptor: 1
 

Friends

class ValueAsMetadata
 
class ValueHandleBase
 

Detailed Description

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.

Definition at line 71 of file Value.h.

Member Typedef Documentation

typedef use_iterator_impl<const Use> llvm::Value::const_use_iterator

Definition at line 305 of file Value.h.

typedef user_iterator_impl<const User> llvm::Value::const_user_iterator

Definition at line 341 of file Value.h.

typedef use_iterator_impl<Use> llvm::Value::use_iterator

Definition at line 304 of file Value.h.

typedef user_iterator_impl<User> llvm::Value::user_iterator

Definition at line 340 of file Value.h.

Member Enumeration Documentation

anonymous enum : unsigned
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 

Definition at line 110 of file Value.h.

Concrete subclass of this.

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 415 of file Value.h.

Constructor & Destructor Documentation

Value::Value ( Type Ty,
unsigned  scid 
)
protected
llvm::Value::Value ( const Value )
delete
Value::~Value ( )
virtual

Member Function Documentation

void llvm::Value::addUse ( Use U)
inline

This method should only be used by the Use class.

Definition at line 407 of file Value.h.

Referenced by llvm::Use::set(), and llvm::Use::swap().

void Value::assertModuleIsMaterialized ( ) const
void llvm::Value::clearSubclassOptionalData ( )
inline

Clear the optional flags contained in this value.

Definition at line 446 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 646 of file Value.cpp.

References llvm::dyn_cast(), llvm::PHINode::getIncomingValueForBlock(), and llvm::Instruction::getParent().

Referenced by llvm::JumpThreadingPass::ComputeValueKnownInPredecessors(), and DoPHITranslation().

const Value* llvm::Value::DoPHITranslation ( const BasicBlock CurBB,
const BasicBlock PredBB 
) const
inline

Definition at line 540 of file Value.h.

References DoPHITranslation().

LLVM_DUMP_METHOD void Value::dump ( ) const
LLVMContext & Value::getContext ( ) const

All values hold a context through their type.

Definition at line 654 of file Value.cpp.

References llvm::Type::getContext().

Referenced by addArgumentAttrs(), llvm::Argument::addAttr(), llvm::CallInst::addAttribute(), llvm::InvokeInst::addAttribute(), llvm::CallInst::addDereferenceableAttr(), llvm::InvokeInst::addDereferenceableAttr(), llvm::CallInst::addDereferenceableOrNullAttr(), llvm::InvokeInst::addDereferenceableOrNullAttr(), llvm::GlobalObject::addMetadata(), llvm::LoopAccessInfo::addRuntimeChecks(), llvm::GlobalObject::addTypeMetadata(), addWithOverflow(), llvm::SelectInst::areInvalidOperands(), BitCastConstantVector(), llvm::bypassSlowDivision(), CanShareConstantPoolEntry(), llvm::changeToUnreachable(), llvm::GlobalObject::clearMetadata(), llvm::FenceInst::cloneImpl(), llvm::UnreachableInst::cloneImpl(), collectInsertionElements(), collectShuffleElements(), collectSingleShuffleElements(), combineLoadToNewType(), combineLoadToOperationType(), llvm::ComputeMultiple(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), llvm::JumpThreadingPass::ComputeValueKnownInPredecessors(), llvm::ConstantFoldBinaryInstruction(), llvm::ConstantFoldCastInstruction(), llvm::ConstantFoldCastOperand(), llvm::ConstantFoldCompareInstruction(), llvm::ConstantFoldInsertElementInstruction(), llvm::ConstantFoldLoadFromConstPtr(), llvm::ConstantFoldShuffleVectorInstruction(), llvm::GlobalObject::copyMetadata(), llvm::SelectionDAGBuilder::CopyValueToVirtualRegister(), llvm::ARMConstantPoolConstant::Create(), createIfThenElse(), CreatePrologue(), llvm::decomposeBitTestICmp(), despeculateCountZeros(), DoPromotion(), llvm::Instruction::dropUnknownNonDebugMetadata(), EliminateDeadSwitchCases(), llvm::GlobalObject::eraseMetadata(), expandBounds(), llvm::SCEVExpander::expandUnionPredicate(), llvm::SCEVExpander::expandWrapPredicate(), ExtractConstantBytes(), extractMDNode(), llvm::FindAllocaDbgDeclare(), llvm::FindAllocaDbgValues(), findBasePointer(), fitsInFPType(), llvm::FoldBranchToCommonDest(), foldConstantInsEltIntoShuffle(), foldInsSequenceIntoBroadcast(), llvm::InstCombiner::FoldShiftByConstant(), foldShiftByConstOfShiftByConst(), llvm::SCEVExpander::generateOverflowCheck(), genLoopLimit(), llvm::ValueAsMetadata::get(), llvm::ConstantExpr::get(), llvm::GlobalObject::getAllMetadata(), getAsConstantIndexedAddress(), 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::GlobalObject::getMetadata(), getNegativeIsTrueBoolVec(), llvm::getObjectSize(), llvm::FastISel::getRegForValue(), llvm::ConstantExpr::getSelect(), GetShiftedValue(), llvm::ConstantDataVector::getSplat(), llvm::ConstantStruct::getTypeForElements(), getValueName(), handleBrSelExpect(), handleSwitchExpect(), llvm::InlineFunction(), llvm::isBytewiseValue(), llvm::CastInst::isNoopCast(), LLVMGetOperand(), LLVMSetParamAlignment(), llvm::RecurrenceDescriptor::lookThroughAnd(), lookThroughFPExtensions(), llvm::IntrinsicLowering::LowerIntrinsicCall(), lowerSubFn(), MakeGuardControlFlowExplicit(), llvm::MergeBasicBlockIntoOnlyPred(), mergeInlinedArrayAllocas(), OptimizeGlobalAddressOfMalloc(), OptimizeNoopCopyExpression(), optimizeVectorResize(), llvm::peelLoop(), PerformHeapAllocSRoA(), processCallSite(), processCmp(), processUGT_ADDCST_ADD(), llvm::Argument::removeAttr(), llvm::CallInst::removeAttribute(), llvm::InvokeInst::removeAttribute(), llvm::coro::replaceCoroFree(), llvm::replaceDbgValueForAlloca(), replaceExtractElements(), ReplaceFPIntrinsicWithCall(), rewriteGEPAsOffset(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), llvm::FastISel::selectBinaryOp(), llvm::FastISel::selectFNeg(), llvm::GlobalObject::setMetadata(), llvm::Instruction::setMetadata(), setNoClobberMetadata(), llvm::GlobalObject::setSection(), setUsedInitializer(), setValueName(), SimplifyCondBranchToCondBranch(), SimplifyICmpInst(), simplifyICmpWithBinOp(), SimplifyRelativeLoad(), SimplifyTerminatorOnSelect(), simplifyX86extrq(), simplifyX86insertq(), simplifyX86pshufb(), simplifyX86vpermilvar(), simplifyX86vpermv(), llvm::SplitCriticalEdge(), SRAGlobal(), subWithOverflow(), TryToShrinkGlobalToBoolean(), TryToSimplifyUncondBranchWithICmpInIt(), TurnSwitchRangeIntoICmp(), updateBranchWeights(), llvm::UpgradeBitCastExpr(), llvm::UpgradeBitCastInst(), llvm::UpgradeIntrinsicCall(), upgradeMaskedCompare(), llvm::ValueHandleBase::ValueIsDeleted(), llvm::ValueHandleBase::ValueIsRAUWd(), llvm::InstCombiner::visitAllocSite(), llvm::InstCombiner::visitBitCast(), llvm::InstCombiner::visitExtractElementInst(), llvm::InstCombiner::visitFCmpInst(), llvm::InstCombiner::visitFree(), 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 guaranteed to return the same reference as long as the value is not modified. If the value has a name, this does a hashtable lookup, so it's not free.

Definition at line 191 of file Value.cpp.

References llvm::StringMapEntry< ValueTy >::getKey(), getValueName(), and hasName().

Referenced by AddAliasScopeMetadata(), addForcedAttributes(), addNonNullAttrs(), llvm::X86FrameLowering::adjustForHiPEPrologue(), analyzeParsePointLiveness(), llvm::DiagnosticInfoOptimizationBase::Argument::Argument(), llvm::HexagonFrameLowering::assignCalleeSavedSpillSlots(), assureFPCallStub(), llvm::WinException::beginFunction(), llvm::CFGMST< Edge, BBInfo >::buildEdges(), buildFrameType(), llvm::BlockFrequencyInfo::calculate(), llvm::BranchProbabilityInfo::calculate(), calculateCXXStateNumbers(), calculateSEHStateNumbers(), llvm::Interpreter::callExternalFunction(), llvm::canConstantFoldCallTo(), CanPropagatePredecessorsForPHIs(), llvm::canRenameComdatFunc(), llvm::changeToInvokeAndSplitBasicBlock(), llvm::classifyEHPersonality(), llvm::CloneBasicBlock(), llvm::CloneFunction(), llvm::orc::cloneFunctionDecl(), llvm::orc::cloneGlobalAliasDecl(), llvm::orc::cloneGlobalVariableDecl(), CloneInstructionInExitBlock(), CloneLoopBlocks(), llvm::colorEHFunclets(), combineInstructionsOverFunction(), combineLoadToNewType(), llvm::InstCombiner::commonShiftTransforms(), compareNames(), computeAliasSummary(), computeVariableSummary(), ConnectEpilog(), ConnectProlog(), llvm::ConstantFoldCall(), ConstructSSAForLoadSet(), llvm::CallInst::Create(), llvm::InvokeInst::Create(), createClone(), createFPFnStub(), llvm::createPGOFuncNameMetadata(), createReplacementInstr(), createResumeEntryBlock(), llvm::DemotePHIToStack(), llvm::DemoteRegToStack(), DoPromotion(), llvm::CFGMST< Edge, BBInfo >::dumpEdges(), llvm::JumpThreadingPass::DuplicateCondBranchOnPHIIntoPred(), eliminateRecursiveTailCall(), llvm::EmitGEPOffset(), llvm::ExecutionEngine::emitGlobals(), llvm::AsmPrinter::EmitSpecialLLVMGlobal(), llvm::WinException::endFunclet(), llvm::Evaluator::EvaluateBlock(), EvaluateStaticConstructor(), findBaseDefiningValueCached(), findBasePointer(), llvm::InstCombiner::FoldAndOfICmps(), foldBlockIntoPredecessor(), llvm::FoldBranchToCommonDest(), FoldCondBranchOnPHI(), foldOperationIntoSelectOperand(), llvm::InstCombiner::FoldOrOfICmps(), llvm::InstCombiner::FoldShiftByConstant(), FoldTwoEntryPHINode(), forceRenaming(), llvm::formLCSSAForInstructions(), getAllocationDataForFunction(), llvm::bfi_detail::getBlockName(), getBranchHint(), llvm::DOTGraphTraits< const Function * >::getCompleteNodeLabel(), getDescription(), llvm::DeadArgumentEliminationPass::RetOrArg::getDescription(), llvm::HexagonTargetObjectFile::getExplicitSectionGlobal(), llvm::TargetLoweringObjectFileMachO::getExplicitSectionGlobal(), llvm::MachineBasicBlock::getFullName(), llvm::objcarc::GetFunctionClass(), llvm::GlobalValue::getGlobalIdentifier(), llvm::ModuleSummaryIndex::getGlobalValueSummary(), llvm::DOTGraphTraits< const Function * >::getGraphName(), GetHeapSROAValue(), llvm::getInlineCost(), llvm::TargetLibraryInfoImpl::getLibFunc(), llvm::ExecutionEngine::getMangledName(), getMCSymbolForMBB(), getName(), llvm::MachineFunction::getName(), llvm::Mangler::getNameWithPrefix(), llvm::getPGOFuncName(), llvm::orc::OrcMCJITReplacement::getPointerToFunction(), getRuntimeMDForKernel(), llvm::getSamplerName(), llvm::sampleprof::SampleProfileReader::getSamplesFor(), llvm::DOTGraphTraits< const Function * >::getSimpleNodeLabel(), llvm::getSurfaceName(), llvm::getTextureName(), getVarName(), getVectorCallCost(), GlobalWasGeneratedByCompiler(), HandleByValArgument(), hoist(), HoistThenElseCodeToIf(), llvm::FunctionImporter::importFunctions(), INITIALIZE_PASS(), llvm::MIRParserImpl::initializeFrameInfo(), inlineCallsImpl(), llvm::InlineFunction(), llvm::InsertPreheaderForLoop(), insertSpills(), insertUniqueBackedgeBlock(), llvm::InternalizePass::internalizeModule(), llvm::isFreeCall(), isGCSafepointPoll(), llvm::HexagonTargetObjectFile::isGlobalInSmallSection(), isInPartition(), isIntrinsicInline(), isIntrinsicSourceOfDivergence(), llvm::TargetTransformInfoImplBase::isLoweredToCall(), isReportingError(), isSafeToPromoteArgument(), llvm::LoadAndStorePromoter::LoadAndStorePromoter(), lookupFunction(), LowerINTRINSIC_WO_CHAIN(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::IntrinsicLowering::LowerToByteSwap(), llvm::TargetLowering::LowerToTLSEmulatedModel(), makeStatepointExplicitImpl(), llvm::yaml::MappingTraits< DiagnosticInfoOptimizationBase * >::mapping(), matchDeMorgansLaws(), llvm::maybeMarkSanitizerLibraryCallNoBuiltin(), maybePrintComdat(), nearest_common_dominator(), llvm::orc::GlobalRenamer::needsRenaming(), llvm::TargetRegisterInfo::needsStackRealignment(), NegateValue(), llvm::DiagnosticPrinterRawOStream::operator<<(), false::operator<<(), llvm::rdf::operator<<(), optimizeBinaryDoubleFP(), llvm::LibCallSimplifier::optimizeCall(), OptimizeGlobalAddressOfMalloc(), optimizeUnaryDoubleFP(), llvm::OptLevelChanger::OptLevelChanger(), llvm::peelLoop(), PerformHeapAllocSRoA(), llvm::Trace::print(), llvm::ValueEnumerator::print(), llvm::SparseSolver::Print(), llvm::ARMConstantPoolConstant::print(), llvm::MemoryPhi::print(), llvm::DiagnosticInfoUnsupported::print(), llvm::BranchProbabilityInfo::printEdgeProbability(), llvm::MIPrinter::printIRBlockReference(), llvm::MIPrinter::printIRValueReference(), PrintLLVMName(), printNode(), printNodeDOT(), processAShr(), llvm::JumpThreadingPass::ProcessBlock(), processGlobal(), processInternalGlobal(), processSDiv(), processSRem(), llvm::JumpThreadingPass::ProcessThreadableEdges(), processUGT_ADDCST_ADD(), llvm::Function::recalculateIntrinsicID(), llvm::ImportedFunctionsInliningStatistics::recordInline(), recoverFramePointer(), llvm::Intrinsic::remangleIntrinsicFunction(), removeConvergentAttrs(), llvm::LazyCallGraph::RefSCC::removeOutgoingEdge(), rename(), ReplaceCallWith(), llvm::replaceDominatedUsesWith(), ReplaceUsesOfMallocWithGlobal(), rewriteGEPAsOffset(), RewriteHeapSROALoadUser(), rewriteMaterializableInstructions(), rewritePHIs(), RewriteUsesOfClonedInstructions(), llvm::LoopAccessInfoPrinterPass::run(), llvm::PostDominatorTreePrinterPass::run(), llvm::PrintFunctionPass::run(), llvm::BlockFrequencyPrinterPass::run(), llvm::AssumptionPrinterPass::run(), llvm::DominanceFrontierPrinterPass::run(), llvm::BranchProbabilityPrinterPass::run(), llvm::DominatorTreePrinterPass::run(), llvm::DevirtSCCRepeatedPass< PassT >::run(), llvm::MemorySSAPrinterPass::run(), llvm::RegionInfoPrinterPass::run(), llvm::Float2IntPass::runImpl(), llvm::SLPVectorizerPass::runImpl(), llvm::JumpThreadingPass::runImpl(), runIPSCCP(), llvm::DOTGraphTraitsViewer< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnFunction(), llvm::DOTGraphTraitsPrinter< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnFunction(), llvm::RGPassManager::runOnFunction(), llvm::FPPassManager::runOnFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::DetectRoundChange::runOnMachineFunction(), runSCCP(), llvm::VLIWMachineScheduler::schedule(), llvm::FastISel::selectInstruction(), llvm::HexagonTargetObjectFile::SelectSectionForGlobal(), setCoroInfo(), llvm::BranchProbabilityInfo::setEdgeProbability(), simplifyAllocaArraySize(), SimplifyCondBranchToCondBranch(), simplifyOneLoop(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), sinkInstruction(), llvm::BasicBlockPass::skipBasicBlock(), llvm::FunctionPass::skipFunction(), llvm::LoopPass::skipLoop(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), speculatePHINodeLoads(), speculateSelectInstLoads(), SpeculativelyExecuteBB(), llvm::SplitBlock(), llvm::SplitBlockPredecessors(), llvm::SplitCriticalEdge(), llvm::SplitLandingPadPredecessors(), SRAGlobal(), StripSymtab(), suffixed_name_or(), llvm::JumpThreadingPass::ThreadEdge(), tryFactorization(), tryToOptimizeStoreOfMallocToGlobal(), TryToShrinkGlobalToBoolean(), TurnSwitchRangeIntoICmp(), unpackLoadToAggregate(), unpackStoreToAggregate(), llvm::UnrollLoop(), llvm::UnrollRuntimeLoopRemainder(), UpdatePHINodes(), llvm::UpgradeIntrinsicCall(), UpgradeIntrinsicFunction1(), llvm::ValueHandleBase::ValueIsDeleted(), llvm::ValueHandleBase::ValueIsRAUWd(), llvm::Function::viewCFG(), llvm::Function::viewCFGOnly(), viewRegionInfo(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitAnd(), llvm::InstCombiner::visitCallInst(), llvm::InstCombiner::visitExtractElementInst(), llvm::InstCombiner::visitFMul(), llvm::InstCombiner::visitFPTrunc(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::InstCombiner::visitICmpInst(), 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::visitZExt(), writeCFGToDotFile(), 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 137 of file Value.cpp.

References use_begin(), and use_end().

Referenced by llvm::AArch64TargetLowering::isProfitableToHoist(), and mergeConditionalStores().

unsigned Value::getPointerAlignment ( const DataLayout DL) const

Returns an alignment of the pointer value.

Returns an alignment which is either specified explicitly, e.g. via align attribute of a function argument, or guaranteed by DataLayout.

Definition at line 599 of file Value.cpp.

References A, assert(), llvm::DataLayout::getABITypeAlignment(), llvm::ConstantInt::getLimitedValue(), llvm::DataLayout::getPreferredAlignment(), llvm::DataLayout::getPrefTypeAlignment(), getType(), llvm::Type::isSized(), llvm::LLVMContext::MD_align, and llvm::AttributeSet::ReturnIndex.

Referenced by computeKnownBits(), and isAligned().

unsigned Value::getPointerDereferenceableBytes ( const DataLayout DL,
bool CanBeNull 
) const

Returns the number of bytes known to be dereferenceable for the pointer value.

If CanBeNull is set by this function the pointer can either be null or be dereferenceable up to the returned number of bytes.

Definition at line 548 of file Value.cpp.

References A, assert(), llvm::ConstantInt::getLimitedValue(), getType(), llvm::DataLayout::getTypeStoreSize(), llvm::LLVMContext::MD_dereferenceable, and llvm::LLVMContext::MD_dereferenceable_or_null.

Referenced by isDereferenceableAndAlignedPointer().

unsigned llvm::Value::getRawSubclassOptionalData ( ) const
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 441 of file Value.h.

References SubclassOptionalData.

Referenced by llvm::FunctionComparator::cmpOperations(), and llvm::ConstantExprKeyType::operator==().

unsigned short llvm::Value::getSubclassDataFromValue ( ) const
inlineprotected
Type* llvm::Value::getType ( ) const
inline

All values are typed, get the type of this value.

Definition at line 230 of file Value.h.

Referenced by llvm::AliasSetTracker::add(), addArgumentReturnedAttrs(), llvm::SSAUpdater::AddAvailableValue(), llvm::AddOne(), llvm::RecurrenceDescriptor::AddReductionVar(), llvm::IVUsers::AddUsersImpl(), addWithOverflow(), aliasSameBasePointerGEPs(), AnalyzeLoadFromClobberingLoad(), AnalyzeLoadFromClobberingStore(), appendsGenericAddressExpressionToPostorderStack(), appendTypeSuffix(), llvm::SelectInst::areInvalidOperands(), areInverseVectorBitmasks(), BitCastConstantVector(), BuildConstantFromSCEV(), buildFrameType(), buildMultiplyTree(), buildNew(), BuildSubAggregate(), llvm::bypassSlowDivision(), CanCoerceMustAliasedValueToLoad(), canEvaluateSExtd(), canEvaluateShiftedShift(), canEvaluateTruncated(), canEvaluateZExtd(), llvm::FastISel::canFoldAddIntoGEP(), canonicalizeBitCastExtElt(), canonicalizeCmpWithConstant(), canReplaceOperandWithVariable(), canRewriteGEPAsOffset(), CanShareConstantPoolEntry(), canSinkInstructions(), canTrapImpl(), llvm::CastInst::castIsValid(), llvm::castToCStr(), cheapToScalarize(), checkFunctionMemoryAccess(), llvm::FPMathOperator::classof(), llvm::CloneAndPruneIntoFromInst(), cloneConstantExprWithNewAddressSpace(), llvm::VAArgInst::cloneImpl(), llvm::TruncInst::cloneImpl(), llvm::ZExtInst::cloneImpl(), llvm::SExtInst::cloneImpl(), llvm::FPTruncInst::cloneImpl(), llvm::FPExtInst::cloneImpl(), llvm::UIToFPInst::cloneImpl(), llvm::SIToFPInst::cloneImpl(), llvm::FPToUIInst::cloneImpl(), llvm::FPToSIInst::cloneImpl(), llvm::IntToPtrInst::cloneImpl(), llvm::PtrToIntInst::cloneImpl(), llvm::BitCastInst::cloneImpl(), llvm::AddrSpaceCastInst::cloneImpl(), cloneInstructionWithNewAddressSpace(), CloneLoopBlocks(), cloneValueWithNewAddressSpace(), llvm::FunctionComparator::cmpBasicBlocks(), llvm::FunctionComparator::cmpConstants(), llvm::FunctionComparator::cmpOperations(), CoerceAvailableValueToLoadType(), collectBitParts(), collectInsertionElements(), collectShuffleElements(), collectSingleShuffleElements(), combineLoadToNewType(), combineLoadToOperationType(), combineStoreToNewValue(), combineStoreToValueType(), CombineUAddWithOverflow(), llvm::InstCombiner::commonCastTransforms(), llvm::InstCombiner::commonIDivTransforms(), llvm::InstCombiner::commonShiftTransforms(), llvm::ObjectSizeOffsetVisitor::compute(), llvm::ObjectSizeOffsetEvaluator::compute(), computeKnownBits(), computeKnownBitsFromOperator(), computeLiveOutSeed(), llvm::computeMinimumValueSizes(), llvm::ComputeMultiple(), ComputeNumSignBits(), llvm::computeOverflowForUnsignedMul(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), computePointerICmp(), ComputeSignBit(), llvm::computeUsesVAFloatArgument(), llvm::JumpThreadingPass::ComputeValueKnownInPredecessors(), ConcatenateTwoVectors(), ConcatenateVectors(), ConnectEpilog(), ConnectProlog(), llvm::ConstantAggregate::ConstantAggregate(), llvm::ConstantFoldBinaryInstruction(), llvm::ConstantFoldCastInstruction(), llvm::ConstantFoldCastOperand(), llvm::ConstantFoldCompareInstOperands(), llvm::ConstantFoldCompareInstruction(), llvm::ConstantFoldExtractElementInstruction(), llvm::ConstantFoldGetElementPtr(), llvm::ConstantFoldInsertElementInstruction(), llvm::ConstantFoldInsertValueInstruction(), llvm::ConstantFoldSelectInstruction(), llvm::ConstantFoldShuffleVectorInstruction(), ConstructSSAForLoadSet(), llvm::ConvertDebugDeclareToDebugValue(), ConvertShiftToMul(), convertValue(), llvm::SelectionDAGBuilder::CopyToExportRegsIfNeeded(), llvm::SelectionDAGBuilder::CopyValueToVirtualRegister(), llvm::BinaryOperator::Create(), llvm::GetElementPtrInst::Create(), llvm::CallInst::Create(), llvm::InvokeInst::Create(), CreateAdd(), llvm::IRBuilder< TargetFolder >::CreateAlignmentAssumption(), llvm::IRBuilder< TargetFolder >::CreateAnd(), createAndInstr(), llvm::IRBuilder< TargetFolder >::CreateAShr(), llvm::IRBuilderBase::CreateAssumption(), llvm::CastInst::CreateBitOrPointerCast(), llvm::IRBuilder< TargetFolder >::CreateBitOrPointerCast(), llvm::IRBuilder< TargetFolder >::CreateCall(), llvm::TargetFolder::CreateCast(), createCast(), llvm::IRBuilder< TargetFolder >::CreateCast(), createDirectCallInst(), llvm::IRBuilder< TargetFolder >::CreateExtractInteger(), llvm::BinaryOperator::CreateFNeg(), llvm::TargetFolder::CreateFPCast(), llvm::CastInst::CreateFPCast(), llvm::IRBuilder< TargetFolder >::CreateFPCast(), createFree(), CreateGCStatepointCallCommon(), CreateGCStatepointInvokeCommon(), llvm::IRBuilderBase::CreateGlobalString(), llvm::TargetFolder::CreateIntCast(), llvm::IRBuilder< TargetFolder >::CreateIntCast(), llvm::CastInst::CreateIntegerCast(), llvm::IRBuilder< TargetFolder >::CreateInvariantGroupBarrier(), llvm::IRBuilderBase::CreateInvariantStart(), llvm::IRBuilder< TargetFolder >::CreateIsNotNull(), llvm::IRBuilder< TargetFolder >::CreateIsNull(), llvm::IRBuilderBase::CreateLifetimeEnd(), llvm::IRBuilderBase::CreateLifetimeStart(), llvm::IRBuilder< TargetFolder >::CreateLShr(), createMalloc(), createMaskedBitTest(), llvm::IRBuilderBase::CreateMaskedGather(), llvm::IRBuilderBase::CreateMaskedLoad(), llvm::IRBuilderBase::CreateMaskedScatter(), llvm::IRBuilderBase::CreateMaskedStore(), createMaskInstrs(), llvm::IRBuilderBase::CreateMemCpy(), llvm::IRBuilderBase::CreateMemMove(), llvm::IRBuilderBase::CreateMemSet(), CreateMul(), CreateNeg(), llvm::BinaryOperator::CreateNeg(), llvm::BinaryOperator::CreateNot(), llvm::BinaryOperator::CreateNSWNeg(), llvm::BinaryOperator::CreateNUWNeg(), llvm::IRBuilder< TargetFolder >::CreateOr(), llvm::InstCombiner::CreateOverflowTuple(), llvm::createPGOFuncNameVar(), createPHIsForSplitLoopExit(), llvm::TargetFolder::CreatePointerBitCastOrAddrSpaceCast(), llvm::CastInst::CreatePointerBitCastOrAddrSpaceCast(), llvm::IRBuilder< TargetFolder >::CreatePointerBitCastOrAddrSpaceCast(), llvm::TargetFolder::CreatePointerCast(), llvm::CastInst::CreatePointerCast(), llvm::IRBuilder< TargetFolder >::CreatePointerCast(), createPopcntIntrinsic(), createPrivateGlobalForString(), createPrivateNonConstGlobalForString(), llvm::IRBuilder< TargetFolder >::CreatePtrDiff(), createReplacementInstr(), llvm::TargetFolder::CreateSExtOrBitCast(), llvm::CastInst::CreateSExtOrBitCast(), llvm::IRBuilder< TargetFolder >::CreateSExtOrBitCast(), llvm::IRBuilder< TargetFolder >::CreateSExtOrTrunc(), llvm::IRBuilder< TargetFolder >::CreateShl(), llvm::TargetFolder::CreateTruncOrBitCast(), llvm::CastInst::CreateTruncOrBitCast(), llvm::IRBuilder< TargetFolder >::CreateTruncOrBitCast(), llvm::IRBuilder< TargetFolder >::CreateVectorSplat(), llvm::IRBuilder< TargetFolder >::CreateXor(), llvm::TargetFolder::CreateZExtOrBitCast(), llvm::CastInst::CreateZExtOrBitCast(), llvm::IRBuilder< TargetFolder >::CreateZExtOrBitCast(), llvm::IRBuilder< TargetFolder >::CreateZExtOrTrunc(), CvtFDivConstToReciprocal(), llvm::DecodePSHUFBMask(), llvm::DecodeVPERMIL2PMask(), llvm::DecodeVPERMILPMask(), llvm::DecodeVPERMV3Mask(), llvm::DecodeVPERMVMask(), llvm::DecodeVPPERMMask(), decomposeSimpleLinearExpr(), llvm::DeleteDeadBlock(), deleteDeadInstruction(), llvm::DemotePHIToStack(), llvm::DemoteRegToStack(), despeculateCountZeros(), determinePointerReadAttrs(), DoPromotion(), EliminateDeadSwitchCases(), eliminateRecursiveTailCall(), 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(), emitX86MaskSelect(), EmitX86Select(), llvm::ARMAsmPrinter::EmitXXStructor(), ensurePromotedGV(), ensureValueAvailableInSuccessor(), llvm::Evaluator::EvaluateBlock(), EvaluateExpression(), evaluateFCmpRelation(), evaluateGEPOffsetExpression(), evaluateICmpRelation(), EvaluateStoreInto(), llvm::expandAtomicRMWToCmpXchg(), expandBounds(), llvm::expandDivision(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), llvm::ARMTargetLowering::ExpandInlineAsm(), llvm::X86TargetLowering::ExpandInlineAsm(), llvm::expandRemainder(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), ExtractConstantBytes(), llvm::extractConstantMask(), extractInteger(), extractVector(), llvm::FCmpInst::FCmpInst(), llvm::FindAvailableLoadedValue(), findBaseDefiningValue(), findBaseDefiningValueOfVector(), findBasePointer(), findCommonAlignment(), findCommonType(), llvm::FindInsertedValue(), FindLIVLoopCondition(), FindLoopCounter(), llvm::findScalarElement(), fixupFPReturnAndCall(), llvm::InstCombiner::FoldAndOfFCmps(), llvm::InstCombiner::FoldAndOfICmps(), FoldBitCast(), foldBitCastBitwiseLogic(), foldBitCastSelect(), foldBoolSextMaskToSelect(), foldConstantCastPair(), foldConstantInsEltIntoShuffle(), foldCttzCtlz(), foldICmpShlOne(), llvm::InstCombiner::FoldItoFPtoI(), foldLogicCastConstant(), foldLogOpOfMaskedICmps(), foldLogOpOfMaskedICmpsHelper(), foldOperationIntoSelectOperand(), llvm::InstCombiner::FoldOrOfFCmps(), foldSelectICmpAndOr(), llvm::InstCombiner::FoldShiftByConstant(), foldShiftByConstOfShiftByConst(), FoldTwoEntryPHINode(), foldUDivNegCst(), foldUDivPow2Cst(), foldUDivShl(), foldVecTruncToExtElt(), llvm::formLCSSAForInstructions(), generateSignedDivisionCode(), generateSignedRemainderCode(), generateUnsignedDivisionCode(), genLoopLimit(), llvm::MemoryLocation::get(), llvm::ConstantVector::get(), llvm::ConstantExpr::get(), getAccessType(), getAddressForMemoryInput(), llvm::IntToPtrInst::getAddressSpace(), llvm::ConstantExpr::getAddrSpaceCast(), getAdjustedAlignment(), getAdjustedPtr(), llvm::Constant::getAggregateElement(), getAISize(), llvm::MemIntrinsic::getAlignmentType(), GetAnyNonZeroConstInt(), getArrayElements(), getAsConstantIndexedAddress(), llvm::ConstantExpr::getAsInstruction(), getBinOpsForFactorization(), llvm::ConstantExpr::getBitCast(), llvm::CastInst::getCastOpcode(), getCodeAddrSpace(), llvm::ConstantExpr::getCompare(), GetCompareTy(), GetConstantInt(), llvm::SelectionDAG::getConstantPool(), llvm::LazyValueInfo::getConstantRange(), llvm::ExecutionEngine::getConstantValue(), llvm::BasicBlock::getContext(), llvm::DemandedBits::getDemandedBits(), llvm::Argument::getDereferenceableBytes(), llvm::Argument::getDereferenceableOrNullBytes(), llvm::MemIntrinsic::getDestAddressSpace(), llvm::AddrSpaceCastInst::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(), getFromRangeMetadata(), llvm::objcarc::GetFunctionClass(), llvm::X86TTIImpl::getGatherScatterOpCost(), llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getGEPCost(), llvm::GetElementPtrInst::getGEPReturnType(), llvm::ConstantExpr::getGetElementPtr(), llvm::GVNExpression::VariableExpression::getHashValue(), llvm::GVNExpression::ConstantExpression::getHashValue(), GetHeapSROAValue(), llvm::ConstantExpr::getICmp(), llvm::getICmpValue(), getIdentityValue(), getIncrmentFactorSCEV(), llvm::DataLayout::getIndexedOffsetInType(), llvm::ConstantExpr::getInsertElement(), llvm::ConstantExpr::getInsertValue(), llvm::ConstantExpr::getIntegerCast(), llvm::ConstantExpr::getIntToPtr(), llvm::SCEVExpander::getIVIncOperand(), llvm::TargetLoweringObjectFile::getKindForGlobal(), llvm::MemoryDependenceResults::getLoadLoadClobberFullWidthSize(), GetLoadValueForLoad(), getLogBase2Vector(), llvm::getMallocType(), GetMemInstValueForLoad(), getMemSetPatternValue(), llvm::AAResults::getModRefInfo(), getNaturalGEPWithOffset(), getNaturalGEPWithType(), llvm::ConstantExpr::getNeg(), llvm::MemoryDependenceResults::getNonLocalPointerDependency(), getNoopInput(), llvm::ConstantExpr::getNot(), llvm::ConstantAggregateZero::getNumElements(), llvm::UndefValue::getNumElements(), llvm::AArch64TTIImpl::getOrCreateResultFromMemIntrinsic(), llvm::getOrEnforceKnownAlignment(), llvm::Argument::getParamAlignment(), llvm::LoadInst::getPointerAddressSpace(), llvm::StoreInst::getPointerAddressSpace(), llvm::AtomicCmpXchgInst::getPointerAddressSpace(), llvm::AtomicRMWInst::getPointerAddressSpace(), llvm::PtrToIntInst::getPointerAddressSpace(), getPointerAlignment(), llvm::GetPointerBaseWithConstantOffset(), llvm::ConstantExpr::getPointerBitCastOrAddrSpaceCast(), llvm::ConstantExpr::getPointerCast(), getPointerDereferenceableBytes(), llvm::GetElementPtrInst::getPointerOperandType(), llvm::LazyValueInfo::getPredicateAt(), llvm::getPtrStride(), llvm::ConstantExpr::getPtrToInt(), llvm::FastISel::getRegForGEPIndex(), llvm::FastISel::getRegForValue(), llvm::GetElementPtrInst::getResultElementType(), getScalarizationOverhead(), llvm::ScalarEvolution::getSCEV(), llvm::ConstantExpr::getSelect(), getSelectCondition(), 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::getSplatValue(), llvm::Constant::getSplatValue(), llvm::AddrSpaceCastInst::getSrcAddressSpace(), llvm::BitCastOperator::getSrcTy(), llvm::SelectionDAG::getSrcValue(), getStoreSizeInBytes(), GetStoreValueForLoad(), llvm::getStrideFromPointer(), llvm::GetStringLength(), llvm::ConstantAggregateZero::getStructElement(), llvm::UndefValue::getStructElement(), getTargetConstantBitsFromNode(), llvm::SITargetLowering::getTgtMemIntrinsic(), llvm::AArch64TargetLowering::getTgtMemIntrinsic(), llvm::ARMTargetLowering::getTgtMemIntrinsic(), llvm::NVPTXTargetLowering::getTgtMemIntrinsic(), llvm::X86TargetLowering::getTgtMemIntrinsic(), llvm::ConstantExpr::getTrunc(), llvm::ConstantExpr::getTruncOrBitCast(), llvm::InlineAsm::getType(), llvm::AllocaInst::getType(), llvm::ConstantInt::getType(), llvm::GlobalValue::getType(), llvm::ValueAsMetadata::getType(), llvm::SCEVUnknown::getType(), llvm::ConstantArray::getType(), llvm::ConstantStruct::getType(), llvm::ConstantVector::getType(), llvm::ConstantPointerNull::getType(), llvm::ConstantDataSequential::getType(), llvm::ConstantDataArray::getType(), llvm::ConstantDataVector::getType(), llvm::InsertElementInst::getType(), llvm::ShuffleVectorInst::getType(), llvm::ConstantExpr::getUIToFP(), llvm::GetUnderlyingObject(), getUnderlyingObjectFromInt(), getUnderlyingObjects(), getUniformBase(), llvm::getUniqueCastUse(), llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getUserCost(), llvm::SelectionDAGBuilder::getValue(), getValueFromICmpCondition(), llvm::SelectionDAGBuilder::getValueImpl(), getVectorCallCost(), llvm::slpvectorizer::BoUpSLP::getVectorElementSize(), getVectorIntrinsicCost(), llvm::ExtractElementInst::getVectorOperandType(), llvm::ConstantExpr::getWithOperandReplaced(), llvm::ConstantExpr::getWithOperands(), getX86MaskVec(), 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(), hasPositiveOperands(), hasSameArgumentList(), hasSameExtUse(), llvm::Argument::hasStructRetAttr(), llvm::haveNoCommonBitsSet(), llvm::HexagonEvaluator::HexagonEvaluator(), HoistThenElseCodeToIf(), llvm::CompositeType::indexValid(), llvm::BinaryOperator::init(), llvm::MIRParserImpl::initializeConstantPool(), llvm::ExecutionEngine::InitializeMemory(), llvm::FunctionLoweringInfo::InitializeRegForValue(), llvm::InlineFunction(), llvm::RuntimePointerChecking::insert(), insertCallRetCast(), insertCallRetPHI(), insertFastDiv(), insertInteger(), insertSinCosCall(), insertUniqueBackedgeBlock(), insertVector(), llvm::cflaa::instantiateInterfaceValue(), instrumentMaskedLoadOrStore(), llvm::MemoryDependenceResults::invalidateCachedPointerInfo(), isAligned(), llvm::isBytewiseValue(), isCompatibleIVType(), llvm::isConsecutiveAccess(), llvm::LanaiTargetObjectFile::isConstantInSmallSection(), llvm::MipsTargetObjectFile::IsConstantInSmallSection(), llvm::isDereferenceableAndAlignedPointer(), isExistingPhi(), llvm::TargetLoweringBase::isExtFree(), isFiniteNonZeroFp(), llvm::SystemZTargetLowering::isFoldableMemAccessOffset(), llvm::InductionDescriptor::isFPInductionPHI(), llvm::IsFreeToInvert(), isGEPKnownNonNull(), isHighCostExpansion(), llvm::Instruction::isIdenticalToWhenDefined(), isImageOrSamplerVal(), llvm::isImpliedCondition(), llvm::InductionDescriptor::isInductionPHI(), llvm::CastInst::isIntegerCast(), isIntegerWideningViableForSlice(), isInterestingPointer(), isIntExtFree(), isKnownNonEqual(), llvm::isKnownNonNull(), isKnownNonNullFromDominatingCondition(), isKnownNonZero(), isKnownToBeAPowerOfTwo(), llvm::CastInst::isLosslessCast(), llvm::isMathLibCallNoop(), llvm::Constant::isNegativeZeroValue(), llvm::CastInst::isNoopCast(), isNormalFp(), IsNullTerminatedString(), isObjectDereferencedInBlock(), isPointerOperand(), isPointerValueDeadOnEntryToFunction(), llvm::objcarc::IsPotentialRetainableObjPtr(), llvm::AArch64TargetLowering::isProfitableToHoist(), llvm::RecurrenceDescriptor::isRecurrenceInstr(), isRepeatedByteSequence(), isSafeToEliminateVarargsCast(), llvm::isSafeToLoadUnconditionally(), llvm::Instruction::isSameOperationAs(), isShuffleEquivalentToSelect(), isShuffleExtractingFromLHS(), isSimpleEnoughPointerToCommit(), isSimpleEnoughValueToCommitHelper(), isSimpleIVUser(), isTruePredicate(), isUndefShift(), llvm::LoopAccessInfo::isUniform(), llvm::ExtractElementInst::isValidOperands(), llvm::InsertElementInst::isValidOperands(), llvm::ShuffleVectorInst::isValidOperands(), isVectorPromotionViable(), isVectorPromotionViableForSlice(), isVectorReductionOp(), isZero(), likeBitCastFromVector(), LinearizeExprTree(), LLVMConstRealGetDouble(), llvm::LoadAndStorePromoter::LoadAndStorePromoter(), llvm::LoadInst::LoadInst(), lookThroughCast(), llvm::WebAssemblyMCInstLower::Lower(), llvm::SelectionDAGBuilder::LowerAsSTATEPOINT(), LowerAtomicCmpXchgInst(), LowerBSWAP(), llvm::CallLowering::lowerCall(), llvm::FastISel::lowerCall(), llvm::FastISel::lowerCallTo(), llvm::SelectionDAGBuilder::LowerCallTo(), llvm::AsmPrinter::lowerConstant(), LowerCTLZ(), LowerCTPOP(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::lowerInterleavedStore(), llvm::IntrinsicLowering::LowerIntrinsicCall(), LowerNegateToMultiply(), llvm::lowerObjectSizeCall(), llvm::AArch64CallLowering::lowerReturn(), llvm::SelectionDAGBuilder::LowerStatepoint(), lowerStatepointMetaArgs(), llvm::IntrinsicLowering::LowerToByteSwap(), MatchBinaryOp(), matchPairwiseReduction(), matchPairwiseReductionAtLevel(), matchSelectFromAndOr(), llvm::matchSelectPattern(), matchVectorSplittingReduction(), llvm::gvn::AvailableValue::MaterializeAdjustedValue(), llvm::MergeBasicBlockIntoOnlyPred(), mergeEmptyReturnBlocks(), llvm::TargetTransformInfoImplBase::minRequiredElementSize(), needsFPFromSig(), operandWithNewAddressSpaceOrCreateUndef(), OptimizeAndOrXor(), OptimizeAwayTrappingUsesOfValue(), optimizeBinaryDoubleFP(), OptimizeEmptyGlobalCXXDtors(), OptimizeExtractBits(), OptimizeGlobalAddressOfMalloc(), optimizeIntegerToVectorInsertions(), OptimizeNoopCopyExpression(), optimizeOnceStoredGlobal(), optimizeSQRT(), optimizeUnaryDoubleFP(), optimizeVectorResize(), llvm::TargetLowering::ParseConstraints(), PerformHeapAllocSRoA(), PhiTypeSorterFunc(), llvm::PointerMayBeCaptured(), llvm::SelectionDAGBuilder::populateCallLoweringInfo(), llvm::ScalarEvolution::print(), printAsOperandImpl(), processAdd(), processAShr(), llvm::JumpThreadingPass::ProcessBranchOnXOR(), processInternalGlobal(), processPHI(), processSDiv(), processSelect(), processSRem(), processUGT_ADDCST_ADD(), processUMulZExtIdiom(), llvm::promoteLoopAccessesToScalars(), promoteSingleBlockAlloca(), llvm::recognizeBSwapOrBitReverseIdiom(), ReduceSwitchRange(), llvm::removeAllNonTerminatorAndEHPadInstructions(), RemoveDeadConstant(), llvm::PHINode::removeIncomingValue(), llvm::MemoryDependenceResults::removeInstruction(), removeLifetimeIntrinsicUsers(), llvm::SCEVExpander::replaceCongruentIVs(), llvm::replaceDominatedUsesWith(), ReplaceFPIntrinsicWithCall(), llvm::InstCombiner::replaceInstUsesWith(), llvm::replaceSymbolicStrideSCEV(), replaceUsesOutsideBlock(), replaceWithConstant(), reportLoadElim(), reportMayClobberedLoad(), llvm::returnTypeIsEligibleForTailCall(), reuseTableCompare(), rewriteGEPAsOffset(), RewriteHeapSROALoadUser(), rewritePHIs(), rewriteSingleStoreAlloca(), RewriteUsesOfClonedInstructions(), llvm::LoadAndStorePromoter::run(), llvm::InstCombiner::run(), runIPSCCP(), runPartiallyInlineLibCalls(), runSCCP(), scalarConstantToHexString(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), llvm::FastISel::selectBinaryOp(), llvm::FastISel::selectBitCast(), llvm::FastISel::selectCast(), llvm::FastISel::selectExtractValue(), llvm::FastISel::selectFNeg(), 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::PHINode::setIncomingValue(), llvm::GlobalVariable::setInitializer(), llvm::MemIntrinsic::setLength(), llvm::MemTransferInst::setSource(), llvm::MemSetInst::setValue(), shorter_filter(), shouldConvertImpl(), llvm::HexagonTargetLowering::shouldExpandAtomicCmpXchgInIR(), llvm::HexagonTargetLowering::shouldExpandAtomicLoadInIR(), llvm::AArch64TargetLowering::shouldExpandAtomicLoadInIR(), llvm::ARMTargetLowering::shouldExpandAtomicLoadInIR(), llvm::SparcTargetLowering::shouldExpandAtomicRMWInIR(), llvm::AArch64TargetLowering::shouldExpandAtomicRMWInIR(), llvm::ARMTargetLowering::shouldExpandAtomicRMWInIR(), llvm::HexagonTargetLowering::shouldExpandAtomicStoreInIR(), llvm::AArch64TargetLowering::shouldExpandAtomicStoreInIR(), llvm::ARMTargetLowering::shouldExpandAtomicStoreInIR(), shouldInstrumentReadWriteFromAddress(), SimplifyAddInst(), simplifyAllocaArraySize(), SimplifyAndInst(), SimplifyAndOfICmps(), simplifyAndOfICmpsWithSameOperands(), SimplifyAShrInst(), simplifyAssocCastAssoc(), SimplifyBranchOnICmpChain(), SimplifyCall(), SimplifyCastInst(), SimplifyDiv(), SimplifyExtractElementInst(), SimplifyFAddInst(), SimplifyFCmpInst(), SimplifyFDivInst(), SimplifyFSubInst(), SimplifyGEPInst(), SimplifyICmpInst(), simplifyICmpOfBools(), simplifyICmpWithBinOp(), SimplifyInsertValueInst(), llvm::SimplifyInstruction(), SimplifyMulInst(), SimplifyOrInst(), SimplifyOrOfICmps(), simplifyOrOfICmpsWithSameOperands(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), SimplifyPHINode(), simplifyRelocatesOffABase(), SimplifyRem(), SimplifyRightShift(), simplifySelectWithFakeICmpEq(), SimplifyShift(), SimplifyShlInst(), SimplifySubInst(), SimplifyUDivInst(), simplifyUnsignedRangeCheck(), simplifyX86extrq(), simplifyX86insertps(), simplifyX86insertq(), simplifyX86MaskedLoad(), simplifyX86MaskedStore(), simplifyX86movmsk(), simplifyX86pshufb(), simplifyX86varShift(), simplifyX86vpcom(), simplifyX86vperm2(), simplifyX86vpermilvar(), simplifyX86vpermv(), SimplifyXorInst(), sink(), SinkCast(), SinkShiftAndTruncate(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), speculatePHINodeLoads(), llvm::SplitLandingPadPredecessors(), stripAndAccumulateInBoundsConstantOffsets(), stripAndComputeConstantOffsets(), llvm::SubOne(), subWithOverflow(), swapMayExposeCSEOpportunities(), ThreadCmpOverSelect(), llvm::InductionDescriptor::transform(), transformToIndexedCompare(), tryToOptimizeStoreOfMallocToGlobal(), tryToReplaceWithConstant(), TryToShrinkGlobalToBoolean(), llvm::JumpThreadingPass::TryToUnfoldSelectInCurrBB(), TurnSwitchRangeIntoICmp(), underlyingObjectsAlias(), unpackLoadToAggregate(), unpackStoreToAggregate(), llvm::UnrollRuntimeLoopRemainder(), UpdatePHINodes(), llvm::UpgradeBitCastExpr(), llvm::UpgradeBitCastInst(), llvm::UpgradeIntrinsicCall(), upgradeMaskedCompare(), UpgradeMaskedLoad(), UpgradeMaskedStore(), UpgradeX86ALIGNIntrinsics(), UpgradeX86PSLLDQIntrinsics(), UpgradeX86PSRLDQIntrinsics(), valueHasFloatPrecision(), llvm::ValueHandleBase::ValueIsDeleted(), llvm::ValueHandleBase::ValueIsRAUWd(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), 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::visitInsertElementInst(), llvm::Interpreter::visitInsertValueInst(), llvm::InstCombiner::visitIntToPtr(), llvm::Interpreter::visitIntToPtrInst(), visitIVCast(), llvm::InstCombiner::visitLandingPadInst(), llvm::Interpreter::visitLoadInst(), llvm::InstCombiner::visitLoadInst(), llvm::Interpreter::visitLShr(), llvm::InstCombiner::visitLShr(), llvm::InstCombiner::visitMul(), llvm::InstCombiner::visitOr(), llvm::InstCombiner::visitPHINode(), llvm::PtrUseVisitor< SliceBuilder >::visitPtr(), llvm::InstCombiner::visitPtrToInt(), llvm::Interpreter::visitPtrToIntInst(), llvm::Interpreter::visitReturnInst(), llvm::InstCombiner::visitReturnInst(), llvm::InstCombiner::visitSDiv(), llvm::Interpreter::visitSelectInst(), llvm::InstCombiner::visitSExt(), llvm::Interpreter::visitSExtInst(), llvm::Interpreter::visitShl(), llvm::InstCombiner::visitShl(), llvm::InstCombiner::visitShuffleVectorInst(), llvm::Interpreter::visitSIToFPInst(), llvm::InstCombiner::visitSRem(), llvm::Interpreter::visitStoreInst(), llvm::InstCombiner::visitStoreInst(), llvm::InstCombiner::visitSub(), llvm::Interpreter::visitSwitchInst(), llvm::InstCombiner::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(), llvm::reassociate::XorOpnd::XorOpnd(), and llvm::BasicBlock::~BasicBlock().

unsigned llvm::Value::getValueID ( ) const
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:

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 434 of file Value.h.

Referenced by llvm::GlobalIFunc::classof(), llvm::GlobalIndirectSymbol::classof(), llvm::ConstantData::classof(), llvm::GlobalAlias::classof(), llvm::Constant::classof(), llvm::MemoryAccess::classof(), llvm::Argument::classof(), llvm::GlobalObject::classof(), llvm::MetadataAsValue::classof(), llvm::GlobalVariable::classof(), llvm::InlineAsm::classof(), llvm::MemoryUseOrDef::classof(), llvm::MemoryUse::classof(), llvm::BasicBlock::classof(), llvm::ConstantInt::classof(), llvm::MemoryDef::classof(), llvm::ConstantFP::classof(), llvm::ConstantAggregateZero::classof(), llvm::ConstantAggregate::classof(), llvm::ConstantArray::classof(), llvm::MemoryPhi::classof(), llvm::ConstantStruct::classof(), llvm::Instruction::classof(), llvm::ConstantVector::classof(), llvm::GlobalValue::classof(), llvm::ConstantPointerNull::classof(), llvm::Function::classof(), llvm::ConstantDataSequential::classof(), llvm::ConstantDataArray::classof(), llvm::ConstantDataVector::classof(), llvm::ConstantTokenNone::classof(), llvm::BlockAddress::classof(), llvm::ConstantExpr::classof(), llvm::UndefValue::classof(), llvm::FunctionComparator::cmpConstants(), llvm::Constant::destroyConstant(), llvm::isa_impl< Constant, Value >::doit(), llvm::isa_impl< ConstantData, Value >::doit(), llvm::isa_impl< ConstantAggregate, Value >::doit(), llvm::isa_impl< Argument, Value >::doit(), llvm::isa_impl< InlineAsm, Value >::doit(), llvm::isa_impl< Instruction, Value >::doit(), llvm::isa_impl< BasicBlock, Value >::doit(), llvm::isa_impl< Function, Value >::doit(), llvm::isa_impl< GlobalVariable, Value >::doit(), llvm::isa_impl< GlobalAlias, Value >::doit(), llvm::isa_impl< GlobalIFunc, Value >::doit(), llvm::Instruction::getOpcode(), llvm::Constant::handleOperandChange(), and llvm::GlobalValue::setThreadLocalMode().

ValueName * Value::getValueName ( ) const
bool llvm::Value::hasName ( ) const
inline
bool Value::hasNUses ( unsigned  N) const

Return true if this Value has exactly N users.

Definition at line 99 of file Value.cpp.

References E, N, use_begin(), and use_end().

bool Value::hasNUsesOrMore ( unsigned  N) const

Return true if this value has N users or more.

This is logically equivalent to getNumUses() >= N.

Definition at line 107 of file Value.cpp.

References E, N, use_begin(), and use_end().

Referenced by hasMoreThanOneUseOtherThanLLVMUsed(), processUMulZExtIdiom(), llvm::BasicBlock::removePredecessor(), replaceConstantExprOp(), and SRAGlobal().

bool llvm::Value::hasOneUse ( ) const
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 383 of file Value.h.

References E, I, use_begin(), and use_end().

Referenced by canEvaluateSExtd(), CanEvaluateShifted(), CanEvaluateShuffled(), canEvaluateTruncated(), canEvaluateZExtd(), canTransformAccumulatorRecursion(), cheapToScalarize(), checkForNegativeOperand(), collectInsertionElements(), collectValuesToDemote(), combineLoadToOperationType(), CombineUAddWithOverflow(), ConnectEpilog(), DeadPHICycle(), detectLog2OfHalf(), dyn_castNotVal(), emitGlobalConstantImpl(), findBuildAggregate(), findBuildVector(), findInitTrampolineFromAlloca(), llvm::SelectionDAGBuilder::FindMergedConditions(), FindSingleUseIdentifiedObject(), llvm::InstCombiner::FoldAndOfICmps(), llvm::FoldBranchToCommonDest(), FoldCondBranchOnPHI(), llvm::InstCombiner::foldFMulConst(), foldInsSequenceIntoBroadcast(), llvm::InstCombiner::FoldOrOfICmps(), llvm::InstCombiner::FoldShiftByConstant(), foldVecTruncToExtElt(), llvm::RecurrenceDescriptor::getSourceExtensionKind(), llvm::HexagonTTIImpl::getUserCost(), llvm::FastISel::hasTrivialKill(), hasUseOtherThanLLVMUsed(), llvm::SystemZTargetLowering::isFoldableMemAccessOffset(), llvm::RecurrenceDescriptor::isMinMaxSelectCmpPattern(), isReassociableOp(), IsSafeComputationToRemove(), LinearizeExprTree(), llvm::RecurrenceDescriptor::lookThroughAnd(), matchDeMorgansLaws(), processUGT_ADDCST_ADD(), llvm::recognizeBSwapOrBitReverseIdiom(), removeEmptyCleanup(), replaceExtractElements(), llvm::InstCombiner::run(), ShouldBreakUpSubtract(), shouldMergeGEPs(), llvm::InstCombiner::SimplifyDivRemOfSelect(), simplifySelectWithICmpCond(), simplifyValueKnownNonZero(), sinkLastInstruction(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), SwitchToLookupTable(), tryFactorization(), llvm::FastISel::tryToFoldLoad(), TryToSimplifyUncondBranchWithICmpInIt(), TryToSinkInstruction(), llvm::JumpThreadingPass::TryToUnfoldSelect(), llvm::JumpThreadingPass::TryToUnfoldSelectInCurrBB(), 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::visitGetElementPtrInst(), llvm::InstCombiner::visitICmpInst(), 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().

bool llvm::Value::hasSameSubclassOptionalData ( const Value V) const
inline

Check the optional flags for equality.

Definition at line 451 of file Value.h.

References SubclassOptionalData.

bool llvm::Value::hasValueHandle ( ) const
inline

Return true if there is a value handle associated with this value.

Definition at line 456 of file Value.h.

Referenced by llvm::MemorySSA::removeMemoryAccess().

bool Value::isSwiftError ( ) const

Return true if this value is a swifterror value.

swifterror values can be either a function argument or an alloca with a swifterror attribute.

Definition at line 675 of file Value.cpp.

References llvm::dyn_cast(), llvm::Argument::hasSwiftErrorAttr(), and llvm::AllocaInst::isSwiftError().

Referenced by combineLoadToOperationType(), and combineStoreToValueType().

bool llvm::Value::isUsedByMetadata ( ) const
inline

Return true if there is metadata referencing this value.

Definition at line 459 of file Value.h.

References IsUsedByMD.

Referenced by ~Value().

bool Value::isUsedInBasicBlock ( const BasicBlock BB) const

Check if this value is used in the specified basic block.

Definition at line 116 of file Value.cpp.

References llvm::BasicBlock::begin(), llvm::dyn_cast(), llvm::BasicBlock::end(), llvm::is_contained(), user_begin(), and user_end().

use_iterator llvm::Value::materialized_use_begin ( )
inline

Definition at line 306 of file Value.h.

Referenced by materialized_uses(), and use_begin().

const_use_iterator llvm::Value::materialized_use_begin ( ) const
inline

Definition at line 307 of file Value.h.

user_iterator llvm::Value::materialized_user_begin ( )
inline

Definition at line 342 of file Value.h.

Referenced by materialized_users(), user_back(), and user_begin().

const_user_iterator llvm::Value::materialized_user_begin ( ) const
inline

Definition at line 343 of file Value.h.

iterator_range<user_iterator> llvm::Value::materialized_users ( )
inline

Definition at line 364 of file Value.h.

References llvm::make_range(), materialized_user_begin(), and user_end().

Referenced by forEachUser(), and users().

iterator_range<const_user_iterator> llvm::Value::materialized_users ( ) const
inline

Definition at line 367 of file Value.h.

References llvm::make_range(), materialized_user_begin(), and user_end().

iterator_range<use_iterator> llvm::Value::materialized_uses ( )
inline

Definition at line 320 of file Value.h.

References llvm::make_range(), materialized_use_begin(), and use_end().

Referenced by uses().

iterator_range<const_use_iterator> llvm::Value::materialized_uses ( ) const
inline

Definition at line 323 of file Value.h.

References llvm::make_range(), materialized_use_begin(), and use_end().

void llvm::Value::mutateType ( Type Ty)
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 558 of file Value.h.

Referenced by llvm::CallInst::mutateFunctionType().

void llvm::Value::operator= ( const Value )
delete
void Value::print ( raw_ostream O,
bool  IsForDebug = false 
) const

Implement operator<< on Value.

Definition at line 3394 of file AsmWriter.cpp.

References getModuleFromVal(), and isReferencingMDNode().

Referenced by dump(), llvm::operator<<(), print(), and llvm::InstCombiner::run().

void Value::print ( raw_ostream O,
ModuleSlotTracker MST,
bool  IsForDebug = false 
) const
void Value::printAsOperand ( raw_ostream O,
bool  PrintType = true,
const Module M = nullptr 
) const
void Value::printAsOperand ( raw_ostream O,
bool  PrintType,
ModuleSlotTracker MST 
) const
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 401 of file Value.cpp.

Referenced by AddReachableCodeToWorklist(), changeToCall(), llvm::changeToInvokeAndSplitBasicBlock(), checkCSEInPredecessor(), CleanupConstantGlobalUsers(), llvm::CloneAndPruneIntoFromInst(), combineLoadToOperationType(), CombineUAddWithOverflow(), ConvertShiftToMul(), createClone(), createResumeEntryBlock(), cse(), llvm::DeleteDeadBlock(), deleteDeadInstruction(), llvm::DemotePHIToStack(), despeculateCountZeros(), DoPromotion(), llvm::EliminateDuplicatePHINodes(), eliminateRecursiveTailCall(), llvm::objcarc::EraseInstruction(), llvm::expandAtomicRMWToCmpXchg(), llvm::expandDivision(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), llvm::expandRemainder(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), findPHIToPartitionLoops(), llvm::SanitizerStatReport::finish(), foldBlockIntoPredecessor(), foldMallocMemset(), FoldTwoEntryPHINode(), GetLoadValueForLoad(), HandleInlinedEHPad(), handleNoSuspendCoroutine(), llvm::Constant::handleOperandChange(), llvm::hoistRegion(), HoistThenElseCodeToIf(), INITIALIZE_PASS(), llvm::InlineFunction(), insertCallRetPHI(), insertFastDiv(), LowerAtomicCmpXchgInst(), LowerAtomicRMWInst(), lowerExpectIntrinsic(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::ARMTargetLowering::lowerInterleavedLoad(), llvm::IntrinsicLowering::LowerIntrinsicCall(), lowerSubFn(), llvm::IntrinsicLowering::LowerToByteSwap(), llvm::MergeBasicBlockIntoOnlyPred(), llvm::MergeBlockIntoPredecessor(), mergeCleanupPad(), mergeEmptyReturnBlocks(), mergeInlinedArrayAllocas(), llvm::LibCallSimplifier::optimizeCall(), OptimizeEmptyGlobalCXXDtors(), llvm::slpvectorizer::BoUpSLP::optimizeGatherSequence(), OptimizeGlobalAddressOfMalloc(), OptimizeGlobalAliases(), optimizeSQRT(), patchAndReplaceAllUsesWith(), processAShr(), llvm::JumpThreadingPass::ProcessBlock(), llvm::JumpThreadingPass::ProcessBranchOnXOR(), processCmp(), processInternalGlobal(), processPHI(), processSDiv(), processSelect(), processSRem(), promoteSingleBlockAlloca(), PropagateConstantReturn(), llvm::removeAllNonTerminatorAndEHPadInstructions(), llvm::PHINode::removeIncomingValue(), llvm::BasicBlock::removePredecessor(), llvm::removeUnwindEdge(), replaceAndRecursivelySimplifyImpl(), ReplaceCallWith(), llvm::SCEVExpander::replaceCongruentIVs(), llvm::coro::replaceCoroFree(), replaceFrameSize(), llvm::InstCombiner::replaceInstUsesWith(), llvm::ReplaceInstWithValue(), ReplaceUsesOfWith(), llvm::BitcodeReaderValueList::resolveConstantForwardRefs(), reuseOrInsertFastDiv(), reuseTableCompare(), rewriteGEPAsOffset(), RewriteHeapSROALoadUser(), rewriteSingleStoreAlloca(), llvm::LoadAndStorePromoter::run(), llvm::InstCombiner::run(), runImpl(), scalarizeMaskedGather(), scalarizeMaskedLoad(), simplifyAndDCEInstruction(), SimplifyLoopInst(), simplifyOneLoop(), llvm::JumpThreadingPass::SimplifyPartiallyRedundantLoad(), simplifyRelocatesOffABase(), simplifySuspendPoint(), sink(), speculatePHINodeLoads(), speculateSelectInstLoads(), llvm::MemorySSA::spliceMemoryAccessAbove(), llvm::SplitLandingPadPredecessors(), SRAGlobal(), tryPromoteAllocaToVector(), tryToOptimizeStoreOfMallocToGlobal(), tryToReplaceWithConstant(), TryToShrinkGlobalToBoolean(), llvm::TryToSimplifyUncondBranchFromEmptyBlock(), TryToSimplifyUncondBranchWithICmpInIt(), llvm::JumpThreadingPass::TryToUnfoldSelectInCurrBB(), llvm::UnrollLoop(), llvm::UpgradeIntrinsicCall(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::ObjectSizeOffsetEvaluator::visitPHINode(), and llvm::BasicBlock::~BasicBlock().

void Value::replaceNonMetadataUsesWith ( Value V)

Change non-metadata 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". This function skips metadata entries in the list.

Definition at line 405 of file Value.cpp.

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 411 of file Value.cpp.

References assert(), contains(), llvm::dyn_cast(), E, getType(), llvm::Use::getUser(), llvm::Use::set(), use_begin(), and use_end().

Referenced by llvm::InstCombiner::replacedSelectWithOperand().

void Value::reverseUseList ( )

Reverse the use-list.

Definition at line 656 of file Value.cpp.

void Value::setName ( const Twine Name)
void Value::setValueName ( ValueName VN)

Definition at line 174 of file Value.cpp.

References assert(), getContext(), HasName, llvm::LLVMContext::pImpl, and llvm::LLVMContextImpl::ValueNames.

Referenced by takeName().

void llvm::Value::setValueSubclassData ( unsigned short  D)
inlineprotected

Definition at line 616 of file Value.h.

References D.

template<class Compare >
void llvm::Value::sortUseList ( Compare  Cmp)

Sort the use-list.

Sorts the Value's use-list by Cmp using a stable mergesort. Cmp is expected to compare two Use references.

Definition at line 640 of file Value.h.

References assert(), and I.

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 502 of file Value.cpp.

References assert(), GEP, llvm::APInt::getBitWidth(), llvm::Operator::getOpcode(), llvm::DataLayout::getPointerSizeInBits(), getType(), llvm::SmallPtrSetImpl< PtrType >::insert(), and llvm::Type::isPointerTy().

Referenced by llvm::GlobalIndirectSymbol::getBaseObject(), llvm::isConsecutiveAccess(), stripAndAccumulateInBoundsConstantOffsets(), and llvm::InstCombiner::visitGetElementPtrInst().

const Value* llvm::Value::stripAndAccumulateInBoundsConstantOffsets ( const DataLayout DL,
APInt Offset 
) const
inline

Definition at line 503 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 498 of file Value.cpp.

Referenced by stripInBoundsConstantOffsets().

const Value* llvm::Value::stripInBoundsConstantOffsets ( ) const
inline

Definition at line 490 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 544 of file Value.cpp.

Referenced by llvm::GlobalIndirectSymbol::getBaseObject(), shouldInstrumentReadWriteFromAddress(), and stripInBoundsOffsets().

const Value* llvm::Value::stripInBoundsOffsets ( ) const
inline

Definition at line 514 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 490 of file Value.cpp.

Referenced by llvm::addLandingPadInfo(), aliasSameBasePointerGEPs(), llvm::classifyEHPersonality(), llvm::ObjectSizeOffsetVisitor::compute(), computePointerICmp(), llvm::emitBinaryFloatFnCall(), emitCalloc(), llvm::emitMemChr(), llvm::emitMemCmp(), llvm::emitMemCpyChk(), llvm::emitPutChar(), llvm::emitPutS(), llvm::emitStrCpy(), llvm::emitStrNCmp(), llvm::emitStrNCpy(), llvm::emitUnaryFloatFnCall(), enforceKnownAlignment(), llvm::AlignmentFromAssumptionsPass::extractAlignmentInfo(), llvm::ExtractTypeInfo(), llvm::FindAvailableLoadedValue(), findBasePointer(), llvm::findDevirtualizableCallsForTypeTest(), findInitTrampoline(), findInitTrampolineFromAlloca(), findSafeStoreForStoreStrongContraction(), findUsedValues(), getCalledFunction(), llvm::getConstantStringInfo(), llvm::MemIntrinsic::getDest(), llvm::TargetTransformInfoImplCRTPBase< AMDGPUTTIImpl >::getGEPCost(), llvm::MemoryDependenceResults::getInvariantGroupPointerDependency(), getKnownConstant(), llvm::InstrProfIncrementInst::getName(), llvm::InstrProfValueProfileInst::getName(), llvm::LazyValueInfo::getPredicateAt(), llvm::CoroIdInst::getPromise(), llvm::objcarc::GetRCIdentityRoot(), llvm::MemTransferInst::getSource(), GetStringLengthH(), hasNoAliasAttr(), llvm::InlineFunction(), isKnownNonConstant(), isObjectSizeLessThanOrEq(), isOverwrite(), IsPointerOffset(), llvm::isSafeToLoadUnconditionally(), OptimizeEmptyGlobalCXXDtors(), optimizeOnceStoredGlobal(), llvm::JumpThreadingPass::ProcessBlock(), removePartiallyOverlappedStores(), llvm::FastISel::selectPatchpoint(), simplifySuspendPoint(), llvm::Constant::stripPointerCasts(), stripPointerCasts(), llvm::InstCombiner::visitGetElementPtrInst(), and llvm::InstCombiner::visitLandingPadInst().

const Value* llvm::Value::stripPointerCasts ( ) const
inline

Definition at line 472 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 494 of file Value.cpp.

Referenced by compareNames(), FindUsedValues(), and stripPointerCastsNoFollowAliases().

const Value* llvm::Value::stripPointerCastsNoFollowAliases ( ) const
inline

Definition at line 481 of file Value.h.

References stripPointerCastsNoFollowAliases().

void Value::takeName ( Value V)
use_iterator llvm::Value::use_begin ( )
inline
const_use_iterator llvm::Value::use_begin ( ) const
inline

Definition at line 314 of file Value.h.

References assertModuleIsMaterialized(), and materialized_use_begin().

bool llvm::Value::use_empty ( ) const
inline

Definition at line 299 of file Value.h.

References assertModuleIsMaterialized().

Referenced by AddReachableCodeToWorklist(), llvm::RecurrenceDescriptor::AddReductionVar(), combineLoadToOperationType(), llvm::SelectionDAGBuilder::CopyToExportRegsIfNeeded(), DCEInstruction(), DeadPHICycle(), llvm::DeleteDeadBlock(), deleteDeadInstruction(), deleteIfDead(), llvm::DemotePHIToStack(), llvm::DemoteRegToStack(), llvm::Constant::destroyConstant(), llvm::AsmPrinter::doFinalization(), DoPromotion(), llvm::InstCombiner::eraseInstFromFunction(), llvm::objcarc::EraseInstruction(), findBuildVector(), hasAddressTakenAndUsed(), hasSameExtUse(), hasUseOtherThanLLVMUsed(), inlineCallsImpl(), llvm::InlineFunction(), llvm::isInstructionTriviallyDead(), isOnlyUsedInEntryBlock(), isSafeToPromoteArgument(), isUsedOutsideOfDefiningBlock(), LinearizeExprTree(), llvm::IntrinsicLowering::LowerIntrinsicCall(), makeStatepointExplicitImpl(), mergeConstants(), OptimizeAwayTrappingUsesOfLoads(), OptimizeExtractBits(), OptimizeGlobalAddressOfMalloc(), optimizeGlobalsInModule(), passingValueIsAlwaysUndefined(), predictValueUseListOrder(), processInternalGlobal(), llvm::promoteLoopAccessesToScalars(), promoteSingleBlockAlloca(), PropagateConstantsIntoArguments(), llvm::RecursivelyDeleteTriviallyDeadInstructions(), llvm::removeAllNonTerminatorAndEHPadInstructions(), RemoveDeadConstant(), llvm::LazyCallGraph::removeDeadFunction(), removeDeadUsersOfConstant(), removeEmptyCleanup(), llvm::MemorySSA::removeMemoryAccess(), ReplaceCallWith(), llvm::InstCombiner::replaceInstUsesWith(), ReplaceUsesOfMallocWithGlobal(), RewriteUsesOfClonedInstructions(), RewriteUsesOfLoadForHeapSRoA(), llvm::LoadAndStorePromoter::run(), llvm::InstCombiner::run(), runImpl(), runIPSCCP(), llvm::FastISel::selectIntrinsicCall(), llvm::FunctionLoweringInfo::set(), llvm::FastISel::CallLoweringInfo::setCallee(), llvm::TargetLowering::CallLoweringInfo::setCallee(), shouldBeDeferred(), simplifyAndDCEInstruction(), llvm::InstCombiner::SimplifyDivRemOfSelect(), SimplifyLoopInst(), sink(), SinkCast(), SinkCmpExpression(), speculatePHINodeLoads(), speculateSelectInstLoads(), llvm::SplitLandingPadPredecessors(), SRAGlobal(), llvm::Function::stealArgumentListFrom(), stripDeadPrototypes(), TryToShrinkGlobalToBoolean(), llvm::PtrUseVisitor< SliceBuilder >::visitGetElementPtrInst(), llvm::BasicBlock::~BasicBlock(), and ~Value().

use_iterator llvm::Value::use_end ( )
inline
const_use_iterator llvm::Value::use_end ( ) const
inline

Definition at line 319 of file Value.h.

User* llvm::Value::user_back ( )
inline
const User* llvm::Value::user_back ( ) const
inline

Definition at line 360 of file Value.h.

References assertModuleIsMaterialized(), and materialized_user_begin().

user_iterator llvm::Value::user_begin ( )
inline
const_user_iterator llvm::Value::user_begin ( ) const
inline

Definition at line 350 of file Value.h.

References assertModuleIsMaterialized(), and materialized_user_begin().

bool llvm::Value::user_empty ( ) const
inline

Definition at line 335 of file Value.h.

References assertModuleIsMaterialized().

user_iterator llvm::Value::user_end ( )
inline
const_user_iterator llvm::Value::user_end ( ) const
inline

Definition at line 355 of file Value.h.

iterator_range<user_iterator> llvm::Value::users ( )
inline

Definition at line 370 of file Value.h.

References assertModuleIsMaterialized(), and materialized_users().

Referenced by addAllGlobalValueUsers(), addNoRecurseAttrsTopDown(), llvm::RecurrenceDescriptor::AddReductionVar(), llvm::InstCombineWorklist::AddUsersToWorkList(), AllCallersPassInValidPointerForArgument(), AllGlobalLoadUsesSimpleEnoughForHeapSRA(), allNonInstructionUsersCanBeMadeInstructions(), allUsersAreInFunction(), allUsersAreInFunctions(), AllUsesOfLoadedValueWillTrapIfNull(), AllUsesOfValueWillTrapIfNull(), AlmostDeadIV(), BlockIsSimpleEnoughToThreadThrough(), llvm::coro::buildCoroutineFrame(), llvm::slpvectorizer::BoUpSLP::buildTree(), llvm::calculateClrEHStateNumbers(), calculateCXXStateNumbers(), calculateSEHStateNumbers(), ChangeCalleesToFastCall(), llvm::CloneAndPruneIntoFromInst(), combineLoadToOperationType(), completeEphemeralValues(), detectPopcountIdiom(), llvm::InstCombiner::dominatesAllUses(), DoPromotion(), llvm::FindAllocaDbgDeclare(), llvm::FindAllocaDbgValues(), findInitTrampolineFromAlloca(), llvm::CodeExtractor::findInputsOutputs(), FindSingleUseIdentifiedObject(), getCleanupRetUnwindDest(), getModuleFromVal(), getNumGlobalVariableUses(), getPreferredExtendForValue(), llvm::StatepointBase< FunTy, InstructionTy, ValueTy, CallSiteTy >::getRelocates(), llvm::getUniqueCastUse(), getUnwindDestToken(), getUnwindDestTokenHelper(), GlobalUsersSafeToSRA(), hasExceptionPointerOrCodeUser(), hasLifetimeMarkers(), hasOnlySelectUsers(), hasOutsideLoopUser(), hasSameExtUse(), hasStoreUsersOnly(), hasUsesOutsideLoop(), llvm::isAllocaPromotable(), isAllocSiteRemovable(), isBranchOnSignBitCheck(), llvm::Constant::isConstantUsed(), llvm::Function::isDefTriviallyDead(), isEphemeralValueOf(), llvm::RecurrenceDescriptor::isFirstOrderRecurrence(), isGOTEquivalentCandidate(), isHighCostExpansion(), isKnownNonNullFromDominatingCondition(), llvm::isKnownNotFullPoison(), isLoopIncrement(), isNotUsedInLoop(), isOnlyUsedInEntryBlock(), isOnlyUsedInEqualityComparison(), isOnlyUsedInZeroEqualityComparison(), IsOnlyUsedInZeroEqualityComparison(), llvm::isOverflowIntrinsicNoWrap(), isPointerValueDeadOnEntryToFunction(), isSafeAndProfitableToSinkLoad(), llvm::TargetFrameLowering::isSafeForNoCSROpt(), isSafePHIToSpeculate(), isSafeSelectToSpeculate(), isSafeSROAElementUse(), llvm::isSafeToDestroyConstant(), isUsedByLifetimeMarker(), isUsedOutsideOfDefiningBlock(), IsUserOfGlobalSafeForSRA(), isVectorReductionOp(), LoadUsesSimpleEnoughForHeapSRA(), makeAllConstantUsesInstructions(), mergeInlinedArrayAllocas(), moveSpillUsesAfterCoroBegin(), NegateValue(), OnlyUsedBy(), llvm::onlyUsedByLifetimeMarkers(), optimizeUnaryDoubleFP(), llvm::AlignmentFromAssumptionsPass::processAssumption(), processUGT_ADDCST_ADD(), processUMulZExtIdiom(), llvm::promoteLoopAccessesToScalars(), promoteSingleBlockAlloca(), PushDefUseChildren(), pushIVUsers(), relocationViaAlloca(), RemoveNestAttribute(), replaceAndRecursivelySimplifyImpl(), llvm::coro::replaceCoroFree(), replaceExtractElements(), ReplaceUsesOfWith(), reportMayClobberedLoad(), rewriteNonInstructionUses(), runImpl(), setCannotDuplicate(), shouldBeDeferred(), shouldSpeculateInstrs(), simplifyAndDCEInstruction(), SimplifyLoopInst(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), llvm::SparseSolver::Solve(), swapMayExposeCSEOpportunities(), SwitchToLookupTable(), tryPromoteAllocaToVector(), TryToShrinkGlobalToBoolean(), usedInGlobalVarDef(), usedInOneFunc(), useFuncSeen(), ValueIsOnlyUsedLocallyOrStoredToOneGlobal(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::InstCombiner::visitShuffleVectorInst(), and ~Value().

iterator_range<const_user_iterator> llvm::Value::users ( ) const
inline

Definition at line 374 of file Value.h.

References assertModuleIsMaterialized(), and materialized_users().

iterator_range<use_iterator> llvm::Value::uses ( )
inline
iterator_range<const_use_iterator> llvm::Value::uses ( ) const
inline

Definition at line 330 of file Value.h.

References assertModuleIsMaterialized(), and materialized_uses().

Friends And Related Function Documentation

friend class ValueAsMetadata
friend

Definition at line 75 of file Value.h.

friend class ValueHandleBase
friend

Definition at line 76 of file Value.h.

Member Data Documentation

unsigned llvm::Value::HasDescriptor
protected
unsigned llvm::Value::HasHungOffUses
protected
unsigned llvm::Value::HasName
protected

Definition at line 115 of file Value.h.

Referenced by getValueName(), hasName(), and setValueName().

unsigned llvm::Value::IsUsedByMD
protected
const unsigned llvm::Value::MaxAlignmentExponent = 29
static

The maximum alignment for instructions.

This is the greatest alignment value supported by load, store, and alloca instructions, and global values.

Definition at line 549 of file Value.h.

const unsigned llvm::Value::MaximumAlignment = 1u << MaxAlignmentExponent
static
unsigned llvm::Value::NumUserOperands
protected
unsigned char llvm::Value::SubclassOptionalData
protected

The documentation for this class was generated from the following files: