LLVM API Documentation

Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Friends
llvm::Value Class Reference

LLVM Value Representation. More...

#include <Value.h>

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

List of all members.

Classes

class  use_iterator_impl
class  user_iterator_impl

Public Types

enum  ValueTy {
  ArgumentVal, BasicBlockVal, FunctionVal, GlobalAliasVal,
  GlobalVariableVal, UndefValueVal, BlockAddressVal, ConstantExprVal,
  ConstantAggregateZeroVal, ConstantDataArrayVal, ConstantDataVectorVal, ConstantIntVal,
  ConstantFPVal, ConstantArrayVal, ConstantStructVal, ConstantVectorVal,
  ConstantPointerNullVal, MDNodeVal, MDStringVal, InlineAsmVal,
  InstructionVal, ConstantFirstVal = FunctionVal, ConstantLastVal = ConstantPointerNullVal
}
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

virtual ~Value ()
void dump () const
 dump - Support for debugging, callable in GDB: V->dump()
void print (raw_ostream &O) 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. 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.
TypegetType () const
LLVMContextgetContext () const
 All values hold a context through their type.
bool hasName () const
ValueNamegetValueName () const
void setValueName (ValueName *VN)
StringRef getName () const
void setName (const Twine &Name)
void takeName (Value *V)
void replaceAllUsesWith (Value *V)
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_iteratoruses ()
iterator_range
< const_use_iterator
uses () 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_iteratorusers ()
iterator_range
< const_user_iterator
users () const
bool hasOneUse () const
bool hasNUses (unsigned N) const
bool hasNUsesOrMore (unsigned N) const
bool isUsedInBasicBlock (const BasicBlock *BB) const
unsigned getNumUses () const
void addUse (Use &U)
unsigned getValueID () const
unsigned getRawSubclassOptionalData () const
void clearSubclassOptionalData ()
bool hasSameSubclassOptionalData (const Value *V) const
void intersectOptionalDataWith (const Value *V)
bool hasValueHandle () const
ValuestripPointerCasts ()
 Strips off any unneeded pointer casts, all-zero GEPs and aliases from the specified value, returning the original uncasted value.
const ValuestripPointerCasts () const
ValuestripPointerCastsNoFollowAliases ()
 Strips off any unneeded pointer casts and all-zero GEPs from the specified value, returning the original uncasted value.
const ValuestripPointerCastsNoFollowAliases () const
ValuestripInBoundsConstantOffsets ()
 Strips off unneeded pointer casts and all-constant GEPs from the specified value, returning the original pointer value.
const ValuestripInBoundsConstantOffsets () const
ValuestripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset)
 Strips like stripInBoundsConstantOffsets but also accumulates the constant offset stripped.
const ValuestripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset) const
ValuestripInBoundsOffsets ()
 Strips off unneeded pointer casts and any in-bounds offsets from the specified value, returning the original pointer value.
const ValuestripInBoundsOffsets () const
bool isDereferenceablePointer (const DataLayout *DL=nullptr) const
ValueDoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB)
const ValueDoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB) const
void mutateType (Type *Ty)
template<class Compare >
void sortUseList (Compare Cmp)
 Sort the use-list.

Static Public Attributes

static const unsigned MaximumAlignment = 1u << 29

Protected Member Functions

 Value (Type *Ty, unsigned scid)
unsigned short getSubclassDataFromValue () const
void setValueSubclassData (unsigned short D)

Protected Attributes

unsigned char SubclassOptionalData: 7

Friends

class ValueSymbolTable
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 69 of file Value.h.


Member Typedef Documentation

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

Definition at line 246 of file Value.h.

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

Definition at line 259 of file Value.h.

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

Definition at line 245 of file Value.h.

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

Definition at line 258 of file Value.h.


Member Enumeration Documentation

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.

Enumerator:
ArgumentVal 
BasicBlockVal 
FunctionVal 
GlobalAliasVal 
GlobalVariableVal 
UndefValueVal 
BlockAddressVal 
ConstantExprVal 
ConstantAggregateZeroVal 
ConstantDataArrayVal 
ConstantDataVectorVal 
ConstantIntVal 
ConstantFPVal 
ConstantArrayVal 
ConstantStructVal 
ConstantVectorVal 
ConstantPointerNullVal 
MDNodeVal 
MDStringVal 
InlineAsmVal 
InstructionVal 
ConstantFirstVal 
ConstantLastVal 

Definition at line 307 of file Value.h.


Constructor & Destructor Documentation

Value::Value ( Type Ty,
unsigned  scid 
) [protected]
Value::~Value ( ) [virtual]

Member Function Documentation

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

addUse - This method should only be used by the Use class.

Definition at line 301 of file Value.h.

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

clearSubclassOptionalData - Clear the optional flags contained in this value.

Definition at line 359 of file Value.h.

References SubclassOptionalData.

Referenced by ClearSubclassDataAfterReassociation().

DoPHITranslation - If this value is a PHI node with CurBB as its parent, return the value in the PHI node corresponding to PredBB. If not, return ourself. This is useful if you want to know the value something has in a predecessor block.

Definition at line 607 of file Value.cpp.

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

Referenced by DoPHITranslation().

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

Definition at line 441 of file Value.h.

References DoPHITranslation().

void Value::dump ( ) const

All values hold a context through their type.

Reimplemented in llvm::Function, and llvm::BasicBlock.

Definition at line 615 of file Value.cpp.

References llvm::Type::getContext().

Referenced by llvm::CallInst::addAttribute(), llvm::InvokeInst::addAttribute(), AddOperand(), AddWithOverflow(), llvm::SelectInst::areInvalidOperands(), BitCastConstantVector(), calculateVectorIndex(), CanShareConstantPoolEntry(), changeToUnreachable(), llvm::FenceInst::clone_impl(), llvm::UnreachableInst::clone_impl(), CollectInsertionElements(), CollectShuffleElements(), CollectSingleShuffleElements(), llvm::ComputeMultiple(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), llvm::MDNode::concatenate(), llvm::ConstantFoldBinaryInstruction(), llvm::ConstantFoldCastInstruction(), llvm::ConstantFoldCompareInstruction(), llvm::ConstantFoldInsertElementInstruction(), llvm::ConstantFoldLoadFromConstPtr(), llvm::ConstantFoldShuffleVectorInstruction(), llvm::SelectionDAGBuilder::CopyValueToVirtualRegister(), llvm::ARMConstantPoolConstant::Create(), CreatePrologue(), decomposeBitTestICmp(), llvm::MDNode::deleteTemporary(), llvm::ConstantAggregateZero::destroyConstant(), llvm::ConstantPointerNull::destroyConstant(), llvm::ConstantDataSequential::destroyConstant(), llvm::UndefValue::destroyConstant(), llvm::Instruction::dropUnknownMetadata(), ExtractConstantBytes(), llvm::FindAllocaDbgDeclare(), FitsInFPType(), FoldBitCast(), llvm::FoldBranchToCommonDest(), llvm::InstCombiner::FoldCmpLoadFromIndexedGlobal(), llvm::InstCombiner::FoldICmpAddOpCst(), FoldReinterpretLoadFromConstPtr(), llvm::InstCombiner::FoldShiftByConstant(), GatherConstantCompares(), genLoopLimit(), llvm::DebugLoc::get(), llvm::ConstantArray::get(), llvm::ConstantVector::get(), llvm::ConstantExpr::get(), llvm::DebugLoc::getAsMDNode(), llvm::LazyValueInfo::getConstant(), llvm::LazyValueInfo::getConstantOnEdge(), getEdgeValueLocal(), llvm::ConstantDataSequential::getElementAsConstant(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantExpr::getExtractValue(), llvm::ConstantExpr::getFCmp(), getFCmpValue(), llvm::ConstantExpr::getGetElementPtr(), llvm::ConstantExpr::getICmp(), llvm::ConstantExpr::getInsertElement(), llvm::ConstantExpr::getInsertValue(), llvm::MDNode::getMostGenericRange(), llvm::MDNode::getMostGenericTBAA(), llvm::getObjectSize(), llvm::FastISel::getRegForValue(), llvm::ConstantExpr::getSelect(), GetShiftedValue(), llvm::ConstantDataVector::getSplat(), llvm::ConstantStruct::getTypeForElements(), HandleByValArgumentInit(), IdxCompare(), llvm::InlineFunction(), llvm::DIBuilder::insertDbgValueIntrinsic(), llvm::DIBuilder::insertDeclare(), InstCombineStoreToCast(), llvm::MDNode::intersect(), llvm::isBytewiseValue(), llvm::CastInst::isNoopCast(), LLVMAddAttribute(), LLVMRemoveAttribute(), LLVMSetParamAlignment(), LookThroughFPExtensions(), nvptx::LowerConstant(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::MapValue(), llvm::MergeBasicBlockIntoOnlyPred(), OptimizeGlobalAddressOfMalloc(), OptimizeNoopCopyExpression(), OptimizeVectorResize(), PerformHeapAllocSRoA(), ProcessUGT_ADDCST_ADD(), ReadDataFromGlobal(), llvm::CallInst::removeAttribute(), llvm::InvokeInst::removeAttribute(), llvm::replaceDbgDeclareForAlloca(), ReplaceFPIntrinsicWithCall(), llvm::ConstantStruct::replaceUsesOfWithOnConstant(), llvm::BlockAddress::replaceUsesOfWithOnConstant(), llvm::Instruction::setMetadata(), setName(), setUsedInitializer(), SimplifyCondBranchToCondBranch(), SimplifyICmpInst(), SimplifyTerminatorOnSelect(), llvm::SplitCriticalEdge(), SRAGlobal(), stripAndComputeConstantOffsets(), SubWithOverflow(), TryToShrinkGlobalToBoolean(), TryToSimplifyUncondBranchWithICmpInIt(), TurnSwitchRangeIntoICmp(), llvm::UpgradeBitCastExpr(), llvm::UpgradeBitCastInst(), UpgradeGlobalStructors(), llvm::UpgradeInstWithTBAATag(), llvm::UpgradeIntrinsicCall(), llvm::ValueHandleBase::ValueIsDeleted(), llvm::ValueHandleBase::ValueIsRAUWd(), llvm::InstCombiner::visitAllocaInst(), llvm::InstCombiner::visitAllocSite(), llvm::InstCombiner::visitBitCast(), llvm::InstCombiner::visitCallInst(), llvm::InstCombiner::visitExtractElementInst(), llvm::InstCombiner::visitFree(), llvm::InstCombiner::visitICmpInst(), llvm::InstCombiner::visitICmpInstWithInstAndIntCst(), llvm::InstCombiner::visitIntToPtr(), llvm::InstCombiner::visitPtrToInt(), llvm::Interpreter::visitReturnInst(), llvm::InstCombiner::visitShuffleVectorInst(), and WriteMDNode().

getName() - Return a constant reference to the value's name. This is cheap and guaranteed to return the same reference as long as the value is not modified.

Definition at line 168 of file Value.cpp.

References llvm::StringMapEntry< ValueTy >::getKey().

Referenced by AddAliasScopeMetadata(), llvm::ExecutionEngine::addGlobalMapping(), llvm::X86FrameLowering::adjustForHiPEPrologue(), llvm::MDString::begin(), llvm::Interpreter::callExternalFunction(), llvm::canConstantFoldCallTo(), CanPropagatePredecessorsForPHIs(), llvm::CloneBasicBlock(), llvm::CloneFunction(), llvm::InstCombiner::commonShiftTransforms(), ConnectProlog(), llvm::ConstantFoldCall(), ConstructSSAForLoadSet(), copyGVAttributes(), createReplacementInstr(), llvm::DemotePHIToStack(), llvm::DemoteRegToStack(), llvm::DISubprogram::describes(), llvm::InstCombiner::DoOneIteration(), llvm::dumpBlock(), llvm::ARMJITInfo::emitFunctionStub(), llvm::EmitGEPOffset(), llvm::ExecutionEngine::emitGlobals(), llvm::AsmPrinter::EmitSpecialLLVMGlobal(), llvm::MDString::end(), EvaluateStaticConstructor(), llvm::ExtractTypeInfo(), fixupSubprogramName(), llvm::SimplifyFortifiedLibCalls::fold(), llvm::InstCombiner::FoldAndOfICmps(), FoldBlockIntoPredecessor(), llvm::FoldBranchToCommonDest(), FoldCondBranchOnPHI(), llvm::InstCombiner::FoldICmpShrCst(), FoldOperationIntoSelectOperand(), llvm::InstCombiner::FoldOrOfICmps(), llvm::InstCombiner::FoldSelectOpOp(), llvm::InstCombiner::FoldShiftByConstant(), FoldTwoEntryPHINode(), forceRenaming(), getAllocationData(), llvm::bfi_detail::getBlockName(), llvm::DOTGraphTraits< const Function * >::getCompleteNodeLabel(), llvm::TargetLoweringObjectFileMachO::getExplicitSectionGlobal(), llvm::MachineBasicBlock::getFullName(), llvm::objcarc::GetFunctionClass(), llvm::LibCallInfo::getFunctionInfo(), llvm::DOTGraphTraits< const Function * >::getGraphName(), llvm::DOTGraphTraits< BlockFrequencyInfo * >::getGraphName(), llvm::InlineCostAnalysis::getInlineCost(), llvm::getInst(), llvm::getIntrinsicIDForCall(), llvm::MDString::getLength(), llvm::MachineFunction::getName(), llvm::Mangler::getNameWithPrefix(), llvm::DOTGraphTraits< BlockFrequencyInfo * >::getNodeLabel(), llvm::JIT::getOrEmitGlobalVariable(), llvm::JIT::getPointerToFunction(), llvm::MCJIT::getPointerToFunction(), llvm::getSamplerName(), llvm::DOTGraphTraits< const Function * >::getSimpleNodeLabel(), llvm::MDString::getString(), llvm::getSurfaceName(), llvm::object::IRObjectFile::getSymbolFlags(), llvm::getTextureName(), GlobalWasGeneratedByAsan(), HandleByValArgument(), HandleCallsInBlockInlinedThroughInvoke(), hasMemoryWrite(), HoistThenElseCodeToIf(), INITIALIZE_PASS(), INITIALIZE_TM_PASS(), llvm::InlineFunction(), llvm::InsertPreheaderForLoop(), insertUniqueBackedgeBlock(), InstCombineLoadCast(), InstCombineStoreToCast(), llvm::isFreeCall(), llvm::Function::isIntrinsic(), isMemsetPattern16(), llvm::LoadAndStorePromoter::LoadAndStorePromoter(), lookupFunction(), llvm::LibCallSimplifierImpl::lookupOptimization(), llvm::AMDGPUMCInstLower::lower(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::IntrinsicLowering::LowerToByteSwap(), NegateValue(), llvm::DiagnosticPrinterRawOStream::operator<<(), OptimizeGlobalAddressOfMalloc(), PerformHeapAllocSRoA(), llvm::ValueEnumerator::print(), llvm::Trace::print(), llvm::CallGraph::print(), llvm::SparseSolver::Print(), llvm::ARMConstantPoolConstant::print(), llvm::CallGraphNode::print(), llvm::AssemblyWriter::printBasicBlock(), llvm::BranchProbabilityInfo::printEdgeProbability(), PrintLLVMName(), llvm::object::IRObjectFile::printSymbolName(), processInstruction(), ProcessUGT_ADDCST_ADD(), RecognizePersonality(), llvm::LazyCallGraph::SCC::removeInterSCCEdge(), ReplaceCallWith(), ReplaceUsesOfMallocWithGlobal(), RewriteHeapSROALoadUser(), RewriteUsesOfClonedInstructions(), llvm::DOTGraphTraitsViewer< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnFunction(), llvm::BranchProbabilityInfo::runOnFunction(), llvm::DOTGraphTraitsPrinter< AnalysisT, IsSimple, GraphT, AnalysisGraphTraitsT >::runOnFunction(), llvm::RGPassManager::runOnFunction(), llvm::LPPassManager::runOnFunction(), llvm::FPPassManager::runOnFunction(), llvm::SelectionDAGISel::runOnMachineFunction(), llvm::MipsOs16::runOnModule(), llvm::Inliner::runOnSCC(), llvm::VLIWMachineScheduler::schedule(), llvm::FastISel::SelectInstruction(), llvm::BranchProbabilityInfo::setEdgeWeight(), setName(), shouldInternalize(), SimplifyCondBranchToCondBranch(), simplifyOneLoop(), SinkThenElseCodeToEnd(), llvm::LoopPass::skipOptnoneFunction(), llvm::FunctionPass::skipOptnoneFunction(), llvm::BasicBlockPass::skipOptnoneFunction(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), speculatePHINodeLoads(), speculateSelectInstLoads(), SpeculativelyExecuteBB(), llvm::SplitBlock(), llvm::SplitBlockPredecessors(), llvm::SplitCriticalEdge(), llvm::SplitLandingPadPredecessors(), SRAGlobal(), StripSymtab(), tryFactorization(), tryToMakeAllocaBePromotable(), TryToOptimizeStoreOfMallocToGlobal(), TryToShrinkGlobalToBoolean(), TurnSwitchRangeIntoICmp(), llvm::UnrollLoop(), UpdatePHINodes(), llvm::UpgradeGlobalVariable(), llvm::UpgradeIntrinsicCall(), UpgradeIntrinsicFunction1(), UpgradeSSE41Function(), usedInGlobalVarDef(), llvm::ValueHandleBase::ValueIsDeleted(), llvm::ValueHandleBase::ValueIsRAUWd(), llvm::Function::viewCFGOnly(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitAllocaInst(), llvm::InstCombiner::visitAnd(), llvm::InstCombiner::visitCallInst(), llvm::InstCombiner::visitExtractElementInst(), llvm::InstCombiner::visitFCmpInst(), llvm::InstCombiner::visitFPTrunc(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::InstCombiner::visitICmpInst(), llvm::InstCombiner::visitICmpInstWithCastAndCast(), llvm::InstCombiner::visitICmpInstWithInstAndIntCst(), llvm::InstCombiner::visitMul(), llvm::InstCombiner::visitOr(), llvm::InstCombiner::visitSDiv(), llvm::InstCombiner::visitSelectInst(), llvm::InstCombiner::visitSExt(), llvm::InstCombiner::visitSRem(), llvm::InstCombiner::visitTrunc(), llvm::InstCombiner::visitXor(), llvm::InstCombiner::visitZExt(), and ~Value().

getNumUses - This method computes the number of uses of this Value. This is a linear time operation. Use hasOneUse, hasNUses, or hasNUsesOrMore to check for specific values.

getNumUses - This method computes the number of uses of this Value. This is a linear time operation. Use hasOneUse or hasNUses to check for specific values.

Definition at line 140 of file Value.cpp.

References use_begin(), and use_end().

getRawSubclassOptionalData - Return the raw optional flags value contained in this value. This should only be used when testing two Values for equivalence.

Definition at line 353 of file Value.h.

References SubclassOptionalData.

Referenced by llvm::ConstantKeyData< ConstantExpr >::getValType().

unsigned short llvm::Value::getSubclassDataFromValue ( ) const [inline, protected]
Type* llvm::Value::getType ( ) const [inline]

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

Reimplemented in llvm::ShuffleVectorInst, llvm::InsertElementInst, llvm::GetElementPtrInst, llvm::ConstantDataVector, llvm::ConstantDataArray, llvm::ConstantDataSequential, llvm::ConstantPointerNull, llvm::ConstantVector, llvm::ConstantStruct, llvm::ConstantArray, llvm::GlobalValue, llvm::ConstantInt, llvm::AllocaInst, and llvm::InlineAsm.

Definition at line 208 of file Value.h.

Referenced by llvm::AliasSetTracker::add(), llvm::SSAUpdater::AddAvailableValue(), llvm::PHINode::addIncoming(), llvm::AddOne(), llvm::IVUsers::AddUsersImpl(), AddWithOverflow(), AnalyzeLoadFromClobberingLoad(), AnalyzeLoadFromClobberingStore(), AppendTypeSuffix(), llvm::SelectInst::areInvalidOperands(), BitCastConstantVector(), BreakUpSubtract(), BuildConstantFromSCEV(), BuildNew(), BuildSubAggregate(), CanCoerceMustAliasedValueToLoad(), CanEvaluateSExtd(), CanEvaluateShifted(), CanEvaluateTruncated(), CanEvaluateZExtd(), llvm::FastISel::canFoldAddIntoGEP(), CanShareConstantPoolEntry(), canTrapImpl(), llvm::CastInst::castIsValid(), llvm::CastToCStr(), CheapToScalarize(), llvm::checkBinaryFloatSignature(), llvm::checkUnaryFloatSignature(), llvm::FPMathOperator::classof(), llvm::VAArgInst::clone_impl(), llvm::TruncInst::clone_impl(), llvm::ZExtInst::clone_impl(), llvm::SExtInst::clone_impl(), llvm::FPTruncInst::clone_impl(), llvm::FPExtInst::clone_impl(), llvm::UIToFPInst::clone_impl(), llvm::SIToFPInst::clone_impl(), llvm::FPToUIInst::clone_impl(), llvm::FPToSIInst::clone_impl(), llvm::IntToPtrInst::clone_impl(), llvm::PtrToIntInst::clone_impl(), llvm::BitCastInst::clone_impl(), llvm::AddrSpaceCastInst::clone_impl(), llvm::CloneAndPruneFunctionInto(), CoerceAvailableValueToLoadType(), CollectBSwapParts(), CollectInsertionElements(), CollectShuffleElements(), CollectSingleShuffleElements(), collectUsesWithPtrTypes(), llvm::InstCombiner::commonCastTransforms(), llvm::InstCombiner::commonIDivTransforms(), llvm::InstCombiner::commonPointerCastTransforms(), llvm::InstCombiner::commonShiftTransforms(), llvm::ObjectSizeOffsetVisitor::compute(), llvm::ObjectSizeOffsetEvaluator::compute(), llvm::computeKnownBits(), llvm::ComputeMultiple(), llvm::ComputeNumSignBits(), llvm::FunctionLoweringInfo::ComputePHILiveOutRegInfo(), computePointerICmp(), llvm::ComputeSignBit(), llvm::ComputeUsesVAFloatArgument(), ConnectProlog(), ConstantFold(), llvm::ConstantFoldBinaryInstruction(), llvm::ConstantFoldCastInstruction(), llvm::ConstantFoldCompareInstOperands(), llvm::ConstantFoldCompareInstruction(), ConstantFoldConstantExpressionImpl(), llvm::ConstantFoldExtractElementInstruction(), ConstantFoldGetElementPtrImpl(), llvm::ConstantFoldInsertElementInstruction(), llvm::ConstantFoldInsertValueInstruction(), llvm::ConstantFoldInstOperands(), llvm::ConstantFoldInstruction(), llvm::ConstantFoldLoadFromConstPtr(), ConstantFoldLoadThroughBitcast(), llvm::ConstantFoldSelectInstruction(), llvm::ConstantFoldShuffleVectorInstruction(), ConstructSSAForLoadSet(), convertMemSetToLoop(), ConvertShiftToMul(), convertTransferToLoop(), convertValue(), llvm::SelectionDAGBuilder::CopyToExportRegsIfNeeded(), llvm::SelectionDAGBuilder::CopyValueToVirtualRegister(), llvm::BinaryOperator::Create(), llvm::IRBuilder< true, TargetFolder >::CreateAnd(), createAndInstr(), llvm::IRBuilder< true, TargetFolder >::CreateAShr(), llvm::TargetFolder::CreateCast(), llvm::IRBuilder< true, TargetFolder >::CreateCast(), createCast(), llvm::IRBuilder< true, TargetFolder >::CreateExtractInteger(), llvm::BinaryOperator::CreateFNeg(), llvm::TargetFolder::CreateFPCast(), llvm::CastInst::CreateFPCast(), createFree(), llvm::IRBuilderBase::CreateGlobalString(), llvm::DwarfCompileUnit::createGlobalVariableDIE(), llvm::TargetFolder::CreateIntCast(), llvm::IRBuilder< true, TargetFolder >::CreateIntCast(), llvm::CastInst::CreateIntegerCast(), llvm::IRBuilder< true, TargetFolder >::CreateIsNotNull(), llvm::IRBuilder< true, TargetFolder >::CreateIsNull(), llvm::IRBuilderBase::CreateLifetimeEnd(), llvm::IRBuilderBase::CreateLifetimeStart(), llvm::IRBuilder< true, TargetFolder >::CreateLShr(), createMalloc(), llvm::IRBuilderBase::CreateMemCpy(), llvm::IRBuilderBase::CreateMemMove(), llvm::IRBuilderBase::CreateMemSet(), llvm::BinaryOperator::CreateNeg(), llvm::BinaryOperator::CreateNot(), llvm::BinaryOperator::CreateNSWNeg(), llvm::BinaryOperator::CreateNUWNeg(), llvm::IRBuilder< true, TargetFolder >::CreateOr(), createPHIsForSplitLoopExit(), llvm::TargetFolder::CreatePointerBitCastOrAddrSpaceCast(), llvm::CastInst::CreatePointerBitCastOrAddrSpaceCast(), llvm::IRBuilder< true, TargetFolder >::CreatePointerBitCastOrAddrSpaceCast(), llvm::TargetFolder::CreatePointerCast(), llvm::CastInst::CreatePointerCast(), llvm::IRBuilder< true, TargetFolder >::CreatePointerCast(), createPrivateGlobalForString(), createPrivateNonConstGlobalForString(), llvm::IRBuilder< true, TargetFolder >::CreatePtrDiff(), createReplacementInstr(), llvm::TargetFolder::CreateSExtOrBitCast(), llvm::CastInst::CreateSExtOrBitCast(), llvm::IRBuilder< true, TargetFolder >::CreateSExtOrBitCast(), llvm::IRBuilder< true, TargetFolder >::CreateSExtOrTrunc(), llvm::IRBuilder< true, TargetFolder >::CreateShl(), llvm::TargetFolder::CreateTruncOrBitCast(), llvm::CastInst::CreateTruncOrBitCast(), llvm::IRBuilder< true, TargetFolder >::CreateTruncOrBitCast(), llvm::IRBuilder< true, TargetFolder >::CreateVectorSplat(), llvm::IRBuilder< true, TargetFolder >::CreateXor(), llvm::TargetFolder::CreateZExtOrBitCast(), llvm::CastInst::CreateZExtOrBitCast(), llvm::IRBuilder< true, TargetFolder >::CreateZExtOrBitCast(), llvm::IRBuilder< true, TargetFolder >::CreateZExtOrTrunc(), CvtFDivConstToReciprocal(), DecomposeGEPExpression(), DecomposeSimpleLinearExpr(), llvm::DeleteDeadBlock(), DeleteInstructionInBlock(), llvm::DemotePHIToStack(), llvm::DemoteRegToStack(), llvm::ConstantAggregateZero::destroyConstant(), llvm::ConstantExpr::destroyConstant(), llvm::UndefValue::destroyConstant(), determinePointerReadAttrs(), llvm::InstCombiner::DoOneIteration(), EliminateDeadSwitchCases(), llvm::EmitBinaryFloatFnCall(), emitDebugValueComment(), llvm::EmitFPutC(), llvm::EmitFPutS(), llvm::EmitFWrite(), llvm::EmitGEPOffset(), llvm::AsmPrinter::EmitGlobalConstant(), emitGlobalConstantFP(), emitGlobalConstantImpl(), emitGlobalConstantStruct(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), llvm::EmitStrNCpy(), llvm::EmitUnaryFloatFnCall(), llvm::ARMAsmPrinter::EmitXXStructor(), EvaluateExpression(), evaluateFCmpRelation(), EvaluateGEPOffsetExpression(), evaluateICmpRelation(), EvaluateStoreInto(), llvm::expandDivision(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), llvm::ARMTargetLowering::ExpandInlineAsm(), llvm::expandRemainder(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), ExtractConstantBytes(), extractInteger(), extractVector(), llvm::FCmpInst::FCmpInst(), llvm::FindAvailableLoadedValue(), findCommonType(), llvm::FindInsertedValue(), FindLIVLoopCondition(), FindLoopCounter(), FindScalarElement(), llvm::InstCombiner::FoldAndOfFCmps(), llvm::InstCombiner::FoldAndOfICmps(), FoldBitCast(), llvm::InstCombiner::FoldCmpLoadFromIndexedGlobal(), foldConstantCastPair(), llvm::InstCombiner::FoldFCmp_IntToFP_Cst(), llvm::InstCombiner::FoldGEPICmp(), llvm::InstCombiner::FoldICmpAddOpCst(), llvm::InstCombiner::FoldICmpCstShrCst(), llvm::InstCombiner::FoldICmpShrCst(), foldLogOpOfMaskedICmps(), foldLogOpOfMaskedICmpsHelper(), FoldOperationIntoSelectOperand(), llvm::InstCombiner::FoldOrOfFCmps(), FoldReinterpretLoadFromConstPtr(), foldSelectICmpAnd(), foldSelectICmpAndOr(), llvm::InstCombiner::FoldSelectOpOp(), llvm::InstCombiner::FoldShiftByConstant(), FoldTwoEntryPHINode(), foldUDivNegCst(), foldUDivPow2Cst(), foldUDivShl(), generateSignedDivisionCode(), generateSignedRemainderCode(), generateUnsignedDivisionCode(), genLoopLimit(), llvm::gep_type_begin(), llvm::ConstantArray::get(), llvm::ConstantVector::get(), llvm::ConstantExpr::get(), getAccessType(), llvm::IntToPtrInst::getAddressSpace(), llvm::ConstantExpr::getAddrSpaceCast(), getAdjustedPtr(), llvm::Constant::getAggregateElement(), getAISize(), llvm::MemIntrinsic::getAlignmentType(), getArrayElements(), llvm::ConstantExpr::getAsInstruction(), getBinOpsForFactorization(), llvm::ConstantExpr::getBitCast(), llvm::CastInst::getCastOpcode(), getCodeAddrSpace(), llvm::ConstantExpr::getCompare(), GetCompareTy(), GetConstantInt(), llvm::SelectionDAG::getConstantPool(), llvm::ExecutionEngine::getConstantValue(), llvm::BasicBlock::getContext(), llvm::Argument::getDereferenceableBytes(), llvm::MemIntrinsic::getDestAddressSpace(), getEdgeValueLocal(), llvm::ConstantAggregateZero::getElementValue(), llvm::UndefValue::getElementValue(), llvm::ConstantExpr::getExtractElement(), llvm::ConstantExpr::getExtractValue(), llvm::ConstantExpr::getFCmp(), llvm::ConstantExpr::getFNeg(), llvm::ConstantExpr::getFPCast(), llvm::ConstantExpr::getFPExtend(), llvm::ConstantExpr::getFPToSI(), llvm::ConstantExpr::getFPToUI(), llvm::ConstantExpr::getFPTrunc(), llvm::objcarc::GetFunctionClass(), llvm::GetElementPtrInst::getGEPReturnType(), llvm::ConstantExpr::getGetElementPtr(), llvm::ConstantExpr::getICmp(), llvm::getICmpValue(), getIdentityValue(), llvm::ConstantExpr::getInsertElement(), llvm::ConstantExpr::getInsertValue(), llvm::ConstantExpr::getIntegerCast(), llvm::ConstantExpr::getIntToPtr(), llvm::SCEVExpander::getIVIncOperand(), llvm::TargetLoweringObjectFile::getKindForGlobal(), GetLinearExpression(), llvm::MemoryDependenceAnalysis::getLoadLoadClobberFullWidthSize(), GetLoadValueForLoad(), llvm::AliasAnalysis::getLocation(), getLogBase2Vector(), llvm::getMallocType(), GetMemInstValueForLoad(), getMemSetPatternValue(), getMergedGlobalExpr(), llvm::AliasAnalysis::getModRefInfo(), getNaturalGEPWithOffset(), getNaturalGEPWithType(), llvm::ConstantExpr::getNeg(), llvm::MemoryDependenceAnalysis::getNonLocalPointerDependency(), getNoopInput(), llvm::ConstantExpr::getNot(), getOne(), llvm::getOrEnforceKnownAlignment(), llvm::Argument::getParamAlignment(), llvm::LoadInst::getPointerAddressSpace(), llvm::StoreInst::getPointerAddressSpace(), llvm::AtomicCmpXchgInst::getPointerAddressSpace(), llvm::AtomicRMWInst::getPointerAddressSpace(), llvm::PtrToIntInst::getPointerAddressSpace(), llvm::GetPointerBaseWithConstantOffset(), llvm::ConstantExpr::getPointerBitCastOrAddrSpaceCast(), llvm::ConstantExpr::getPointerCast(), llvm::GetElementPtrInst::getPointerOperandType(), llvm::ConstantExpr::getPtrToInt(), llvm::FastISel::getRegForGEPIndex(), llvm::FastISel::getRegForValue(), llvm::ScalarEvolution::getSCEV(), llvm::ConstantExpr::getSelect(), GetSelectFoldableConstant(), llvm::ConstantAggregateZero::getSequentialElement(), llvm::UndefValue::getSequentialElement(), llvm::ConstantExpr::getSExt(), llvm::ConstantExpr::getSExtOrBitCast(), GetShiftedValue(), llvm::ShuffleVectorInst::getShuffleMask(), llvm::ConstantExpr::getShuffleVector(), llvm::SystemZTargetLowering::getSingleConstraintMatchWeight(), llvm::ARMTargetLowering::getSingleConstraintMatchWeight(), llvm::PPCTargetLowering::getSingleConstraintMatchWeight(), llvm::TargetLowering::getSingleConstraintMatchWeight(), llvm::ConstantExpr::getSIToFP(), llvm::MemTransferInst::getSourceAddressSpace(), llvm::ConstantVector::getSplat(), llvm::ConstantDataVector::getSplat(), llvm::Constant::getSplatValue(), llvm::SelectionDAG::getSrcValue(), GetStoreValueForLoad(), getStrideFromPointer(), llvm::GetStringLength(), llvm::ConstantAggregateZero::getStructElement(), llvm::UndefValue::getStructElement(), llvm::AArch64TargetLowering::getTgtMemIntrinsic(), llvm::ARMTargetLowering::getTgtMemIntrinsic(), llvm::NVPTXTargetLowering::getTgtMemIntrinsic(), llvm::ConstantExpr::getTrunc(), llvm::ConstantExpr::getTruncOrBitCast(), llvm::ConstantStruct::getType(), llvm::ConstantVector::getType(), llvm::ConstantPointerNull::getType(), llvm::SCEVUnknown::getType(), llvm::InsertElementInst::getType(), llvm::ShuffleVectorInst::getType(), llvm::ConstantExpr::getUIToFP(), llvm::GetUnderlyingObject(), getUnderlyingObjectFromInt(), getUnderlyingObjects(), getUniqueCastUse(), llvm::SelectionDAGBuilder::getValue(), getValueAsDouble(), llvm::SelectionDAGBuilder::getValueImpl(), llvm::ExtractElementInst::getVectorOperandType(), llvm::ConstantExpr::getWithOperandReplaced(), llvm::ConstantExpr::getWithOperands(), llvm::ConstantExpr::getZExt(), llvm::ConstantExpr::getZExtOrBitCast(), llvm::GlobalVariable::GlobalVariable(), HandleByValArgument(), HandleByValArgumentInit(), llvm::Argument::hasByValAttr(), llvm::Argument::hasByValOrInAllocaAttr(), llvm::PHINode::hasConstantValue(), llvm::Argument::hasInAllocaAttr(), llvm::Argument::hasNestAttr(), llvm::Argument::hasNoAliasAttr(), llvm::Argument::hasNoCaptureAttr(), llvm::Argument::hasNonNullAttr(), llvm::Argument::hasStructRetAttr(), HoistThenElseCodeToIf(), IdxCompare(), llvm::CompositeType::indexValid(), llvm::BinaryOperator::init(), INITIALIZE_PASS(), INITIALIZE_TM_PASS(), llvm::ExecutionEngine::InitializeMemory(), llvm::FunctionLoweringInfo::InitializeRegForValue(), llvm::InlineFunction(), insertFastDiv(), insertInteger(), insertUniqueBackedgeBlock(), insertVector(), InstCombineLoadCast(), InstCombineStoreToCast(), llvm::MemoryDependenceAnalysis::invalidateCachedPointerInfo(), llvm::isBytewiseValue(), isCompatibleIVType(), IsConstantOffsetFromGlobal(), isDereferenceablePointer(), isDereferenceablePointer(), isEliminableCastPair(), isExistingPhi(), isFiniteNonZeroFp(), isGEPKnownNonNull(), isHighCostExpansion(), llvm::Instruction::isIdenticalToWhenDefined(), llvm::isImageOrSamplerVal(), llvm::CastInst::isIntegerCast(), isIntegerWideningViableForSlice(), isInterestingPointer(), llvm::isKnownNonZero(), llvm::isKnownToBeAPowerOfTwo(), llvm::CastInst::isLosslessCast(), llvm::Constant::isNegativeZeroValue(), llvm::CastInst::isNoopCast(), isNormalFp(), IsNullTerminatedString(), isOverwrite(), isPointerOperand(), llvm::objcarc::IsPotentialRetainableObjPtr(), isRepeatedByteSequence(), isSafeToEliminateVarargsCast(), llvm::isSafeToLoadUnconditionally(), llvm::isSafeToSpeculativelyExecute(), llvm::Instruction::isSameOperationAs(), isSimpleEnoughPointerToCommit(), isSimpleEnoughValueToCommitHelper(), isSimpleIVUser(), isStridedPtr(), isUndefShift(), llvm::ExtractElementInst::isValidOperands(), llvm::InsertElementInst::isValidOperands(), llvm::ShuffleVectorInst::isValidOperands(), isVectorPromotionViableForSlice(), isZero(), LinearizeExprTree(), llvm::LoadAndStorePromoter::LoadAndStorePromoter(), LowerAtomicCmpXchgInst(), LowerBSWAP(), llvm::SelectionDAGBuilder::LowerCallOperands(), llvm::FastISel::LowerCallTo(), llvm::SelectionDAGBuilder::LowerCallTo(), nvptx::LowerConstant(), lowerConstant(), LowerCTLZ(), LowerCTPOP(), llvm::IntrinsicLowering::LowerIntrinsicCall(), LowerNegateToMultiply(), llvm::IntrinsicLowering::LowerToByteSwap(), llvm::MapValue(), matchPairwiseReduction(), matchPairwiseReductionAtLevel(), MatchSelectFromAndOr(), matchVectorSplittingReduction(), llvm::MergeBasicBlockIntoOnlyPred(), mergeEmptyReturnBlocks(), OptimizeAndOrXor(), OptimizeAwayTrappingUsesOfValue(), OptimizeExtractBits(), OptimizeGlobalAddressOfMalloc(), OptimizeIntegerToVectorInsertions(), OptimizeIntToFloatBitCast(), OptimizeNoopCopyExpression(), OptimizeOnceStoredGlobal(), OptimizeVectorResize(), llvm::TargetLowering::ParseConstraints(), PerformHeapAllocSRoA(), llvm::PointerMayBeCaptured(), llvm::AssemblyWriter::printArgument(), printAsOperand(), llvm::AssemblyWriter::printInstruction(), processInstruction(), ProcessUAddIdiom(), ProcessUGT_ADDCST_ADD(), ProcessUMulZExtIdiom(), promoteSingleBlockAlloca(), PushValueAndType(), ReadDataFromGlobal(), llvm::RemapInstruction(), llvm::AliasSetTracker::remove(), RemoveDeadConstant(), llvm::PHINode::removeIncomingValue(), llvm::MemoryDependenceAnalysis::removeInstruction(), removeLifetimeIntrinsicUsers(), replaceAllUsesWith(), llvm::SCEVExpander::replaceCongruentIVs(), ReplaceFPIntrinsicWithCall(), llvm::InstCombiner::ReplaceInstUsesWith(), replaceSymbolicStrideSCEV(), llvm::returnTypeIsEligibleForTailCall(), RewriteHeapSROALoadUser(), rewriteSingleStoreAlloca(), RewriteUsesOfClonedInstructions(), llvm::TypeFinder::run(), llvm::Interpreter::run(), llvm::LoadAndStorePromoter::run(), llvm::JIT::runFunction(), llvm::NVPTXLowerAggrCopies::runOnFunction(), llvm::FindUsedTypes::runOnModule(), scalarConstantToHexString(), llvm::FastISel::SelectOperator(), llvm::FunctionLoweringInfo::set(), llvm::GlobalAlias::setAliasee(), llvm::MemIntrinsic::setDest(), llvm::GlobalVariable::setInitializer(), llvm::MemIntrinsic::setLength(), setName(), llvm::MemTransferInst::setSource(), llvm::MemSetInst::setValue(), shorter_filter(), shouldConvert(), llvm::AArch64TargetLowering::shouldExpandAtomicInIR(), llvm::ARMTargetLowering::shouldExpandAtomicInIR(), SimplifyAddInst(), SimplifyAndInst(), SimplifyAShrInst(), SimplifyBinOp(), SimplifyBranchOnICmpChain(), SimplifyCall(), SimplifyDiv(), SimplifyFAddInst(), SimplifyFSubInst(), SimplifyICmpInst(), SimplifyInsertValueInst(), llvm::SimplifyInstruction(), SimplifyLShrInst(), SimplifyMulInst(), simplifyOneLoop(), SimplifyOrInst(), SimplifyPHINode(), SimplifyRem(), SimplifyShift(), SimplifyShlInst(), SimplifySubInst(), SimplifyWithOpReplaced(), SimplifyXorInst(), SinkCast(), SinkShiftAndTruncate(), SinkThenElseCodeToEnd(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), speculatePHINodeLoads(), llvm::SplitLandingPadPredecessors(), stripAndAccumulateInBoundsConstantOffsets(), stripAndComputeConstantOffsets(), StripPtrCastKeepAS(), llvm::SubOne(), SubWithOverflow(), swapMayExposeCSEOpportunities(), SymbolicallyEvaluateBinop(), SymbolicallyEvaluateGEP(), ThreadCmpOverSelect(), tryToMakeAllocaBePromotable(), TryToOptimizeStoreOfMallocToGlobal(), TryToShrinkGlobalToBoolean(), TurnSwitchRangeIntoICmp(), underlyingObjectsAlias(), llvm::UnrollRuntimeLoopProlog(), UpdatePHINodes(), llvm::UpgradeBitCastExpr(), llvm::UpgradeBitCastInst(), llvm::UpgradeIntrinsicCall(), llvm::ValueHandleBase::ValueIsDeleted(), llvm::ValueHandleBase::ValueIsRAUWd(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitAddrSpaceCast(), llvm::InstCombiner::visitAllocaInst(), llvm::InstCombiner::visitAllocSite(), llvm::InstCombiner::visitAnd(), llvm::ObjectSizeOffsetVisitor::visitArgument(), llvm::InstCombiner::visitAShr(), llvm::Interpreter::visitAShr(), llvm::Interpreter::visitBinaryOperator(), llvm::InstCombiner::visitBitCast(), llvm::Interpreter::visitBitCastInst(), llvm::InstCombiner::visitCallInst(), llvm::Interpreter::visitExtractElementInst(), llvm::InstCombiner::visitExtractElementInst(), llvm::Interpreter::visitExtractValueInst(), llvm::InstCombiner::visitFAdd(), llvm::Interpreter::visitFCmpInst(), llvm::InstCombiner::visitFCmpInst(), llvm::InstCombiner::visitFMul(), llvm::Interpreter::visitFPExtInst(), llvm::InstCombiner::visitFPToSI(), llvm::Interpreter::visitFPToSIInst(), llvm::InstCombiner::visitFPToUI(), llvm::Interpreter::visitFPToUIInst(), llvm::InstCombiner::visitFPTrunc(), llvm::Interpreter::visitFPTruncInst(), llvm::InstCombiner::visitFSub(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::Interpreter::visitICmpInst(), llvm::InstCombiner::visitICmpInst(), llvm::InstCombiner::visitICmpInstWithCastAndCast(), llvm::InstCombiner::visitICmpInstWithInstAndIntCst(), llvm::InstCombiner::visitInsertElementInst(), llvm::Interpreter::visitInsertValueInst(), llvm::InstCombiner::visitIntToPtr(), llvm::Interpreter::visitIntToPtrInst(), visitIVCast(), llvm::InstCombiner::visitLandingPadInst(), llvm::Interpreter::visitLoadInst(), llvm::InstCombiner::visitLoadInst(), llvm::InstCombiner::visitLShr(), llvm::Interpreter::visitLShr(), llvm::InstCombiner::visitMul(), llvm::InstCombiner::visitOr(), llvm::InstCombiner::visitPHINode(), llvm::PtrUseVisitor< SliceBuilder >::visitPtr(), llvm::InstCombiner::visitPtrToInt(), llvm::Interpreter::visitPtrToIntInst(), llvm::Interpreter::visitReturnInst(), llvm::InstCombiner::visitSDiv(), llvm::Interpreter::visitSelectInst(), llvm::InstCombiner::visitSelectInst(), llvm::InstCombiner::visitSelectInstWithICmp(), llvm::InstCombiner::visitSExt(), llvm::Interpreter::visitSExtInst(), llvm::Interpreter::visitShl(), llvm::InstCombiner::visitShuffleVectorInst(), llvm::Interpreter::visitSIToFPInst(), llvm::SelectionDAGBuilder::visitSPDescriptorParent(), llvm::InstCombiner::visitSRem(), llvm::Interpreter::visitStoreInst(), llvm::InstCombiner::visitStoreInst(), llvm::InstCombiner::visitSub(), llvm::Interpreter::visitSwitchInst(), llvm::InstCombiner::visitTrunc(), llvm::Interpreter::visitTruncInst(), llvm::InstCombiner::visitUDiv(), llvm::Interpreter::visitUIToFPInst(), llvm::InstCombiner::visitURem(), llvm::Interpreter::visitVAArgInst(), llvm::InstCombiner::visitXor(), llvm::InstCombiner::visitZExt(), llvm::Interpreter::visitZExtInst(), llvm::WriteConstantInternal(), WriteConstants(), WriteInstruction(), WriteMDNode(), llvm::AssemblyWriter::writeOperand(), llvm::AssemblyWriter::writeParamOperand(), and llvm::BasicBlock::~BasicBlock().

unsigned llvm::Value::getValueID ( ) const [inline]

getValueID - Return an ID for the concrete type of this object. This is used to implement the classof checks. This should not be used for any other purpose, as the values may change as LLVM evolves. Also, note that for instructions, the Instruction's opcode is added to InstructionVal. So this means three things: # there is no value with code InstructionVal (no opcode==0). # there are more possible values for the value type than in ValueTy enum. # the InstructionVal enumerator must be the highest valued enumerator in the ValueTy enum.

Definition at line 346 of file Value.h.

Referenced by llvm::GlobalObject::classof(), llvm::MDString::classof(), llvm::GlobalAlias::classof(), llvm::Argument::classof(), llvm::Constant::classof(), llvm::GlobalVariable::classof(), llvm::InlineAsm::classof(), llvm::MDNode::classof(), llvm::ConstantInt::classof(), llvm::BasicBlock::classof(), llvm::ConstantFP::classof(), llvm::ConstantAggregateZero::classof(), llvm::GlobalValue::classof(), llvm::ConstantArray::classof(), llvm::Instruction::classof(), llvm::ConstantStruct::classof(), llvm::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::isa_impl< Constant, Value >::doit(), llvm::isa_impl< Argument, Value >::doit(), llvm::isa_impl< InlineAsm, Value >::doit(), llvm::isa_impl< Instruction, Value >::doit(), llvm::isa_impl< BasicBlock, Value >::doit(), llvm::isa_impl< Function, Value >::doit(), llvm::isa_impl< GlobalVariable, Value >::doit(), llvm::isa_impl< GlobalAlias, Value >::doit(), llvm::isa_impl< MDNode, Value >::doit(), llvm::Instruction::getOpcode(), and llvm::GlobalValue::setThreadLocalMode().

ValueName* llvm::Value::getValueName ( ) const [inline]
bool llvm::Value::hasName ( ) const [inline]

hasNUses - Return true if this Value has exactly N users.

Definition at line 93 of file Value.cpp.

References use_begin(), and use_end().

Referenced by WriteUseList().

hasNUsesOrMore - Return true if this value has N users or more. This is logically equivalent to getNumUses() >= N.

Definition at line 104 of file Value.cpp.

References use_begin(), and use_end().

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

bool llvm::Value::hasOneUse ( ) const [inline]

hasOneUse - Return true if there is exactly one user of this value. This is specialized because it is a common request and does not require traversing the whole use list.

Definition at line 277 of file Value.h.

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

Referenced by CanEvaluateSExtd(), CanEvaluateShifted(), CanEvaluateShuffled(), CanEvaluateTruncated(), CanEvaluateZExtd(), CheapToScalarize(), checkForNegativeOperand(), CollectInsertionElements(), DeadPHICycle(), detectLog2OfHalf(), llvm::InstCombiner::DoOneIteration(), FindInitTrampolineFromAlloca(), llvm::SelectionDAGBuilder::FindMergedConditions(), FindSingleUseIdentifiedObject(), llvm::InstCombiner::FoldAndOfICmps(), llvm::FoldBranchToCommonDest(), FoldCondBranchOnPHI(), llvm::InstCombiner::foldFMulConst(), llvm::InstCombiner::FoldGEPICmp(), llvm::InstCombiner::FoldICmpShrCst(), llvm::InstCombiner::FoldOrOfICmps(), llvm::InstCombiner::FoldShiftByConstant(), llvm::FastISel::hasTrivialKill(), hasUseOtherThanLLVMUsed(), isFormingBranchFromSelectProfitable(), isReassociableOp(), IsSafeComputationToRemove(), LinearizeExprTree(), ProcessUGT_ADDCST_ADD(), ShouldBreakUpSubtract(), shouldMergeGEPs(), llvm::InstCombiner::SimplifyDivRemOfSelect(), simplifyValueKnownNonZero(), SinkThenElseCodeToEnd(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), tryFactorization(), llvm::FastISel::tryToFoldLoad(), TryToSimplifyUncondBranchWithICmpInIt(), TryToSinkInstruction(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitAnd(), llvm::InstCombiner::visitBranchInst(), llvm::InstCombiner::visitExtractElementInst(), llvm::InstCombiner::visitFDiv(), llvm::InstCombiner::visitFMul(), llvm::InstCombiner::visitFPTrunc(), llvm::InstCombiner::visitICmpInst(), llvm::InstCombiner::visitICmpInstWithInstAndIntCst(), llvm::InstCombiner::visitInsertElementInst(), llvm::InstCombiner::visitInsertValueInst(), llvm::InstCombiner::visitLoadInst(), llvm::InstCombiner::visitMul(), llvm::InstCombiner::visitOr(), llvm::InstCombiner::visitPHINode(), llvm::InstCombiner::visitSelectInstWithICmp(), llvm::InstCombiner::visitSExt(), llvm::InstCombiner::visitStoreInst(), llvm::InstCombiner::visitTrunc(), llvm::InstCombiner::visitXor(), and llvm::InstCombiner::visitZExt().

hasSameSubclassOptionalData - Test whether the optional flags contained in this value are equal to the optional flags in the given value.

Definition at line 365 of file Value.h.

References SubclassOptionalData.

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

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

Definition at line 377 of file Value.h.

intersectOptionalDataWith - Clear any optional flags in this value that are not also set in the given value.

Definition at line 371 of file Value.h.

References SubclassOptionalData.

Referenced by HoistThenElseCodeToIf(), and SinkThenElseCodeToEnd().

isUsedInBasicBlock - Return true if this value is used in the specified basic block.

Definition at line 115 of file Value.cpp.

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

void llvm::Value::mutateType ( Type Ty) [inline]

mutateType - Mutate the type of this Value to be of the specified type. Note that this is an extremely dangerous operation which can create completely invalid IR very easily. It is strongly recommended that you recreate IR objects with the right types instead of mutating them in place.

Definition at line 455 of file Value.h.

Referenced by llvm::RemapInstruction().

void Value::print ( raw_ostream O) const
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 2266 of file AsmWriter.cpp.

References getModuleFromVal(), getType(), hasName(), llvm::TypePrinting::incorporateTypes(), llvm::TypePrinting::print(), and llvm::WriteAsOperandInternal().

Referenced by llvm::AsmPrinter::EmitFunctionHeader(), llvm::AsmPrinter::EmitGlobalVariable(), llvm::DOTGraphTraits< const Function * >::getCompleteNodeLabel(), llvm::DOTGraphTraits< const Function * >::getSimpleNodeLabel(), nvptx::LowerConstant(), lowerConstant(), llvm::SCEV::print(), llvm::IVUsers::print(), llvm::AliasSet::print(), print(), PrintLoopInfo(), PrintModRefResults(), and PrintResults().

replaceAllUsesWith - Go through the uses list for this definition and make each use point to "V" instead of "this". After this completes, 'this's use list is guaranteed to be empty.

Definition at line 340 of file Value.cpp.

References llvm::CallingConv::C, contains(), getType(), llvm::Use::getUser(), llvm::Use::set(), use_empty(), and llvm::ValueHandleBase::ValueIsRAUWd().

Referenced by AddOperand(), AddReachableCodeToWorklist(), BreakUpSubtract(), changeToCall(), checkCSEInPredecessor(), llvm::CloneAndPruneFunctionInto(), ConvertShiftToMul(), cse(), llvm::DeleteDeadBlock(), DeleteInstructionInBlock(), llvm::DemotePHIToStack(), llvm::InstCombiner::DoOneIteration(), llvm::EliminateDuplicatePHINodes(), llvm::objcarc::EraseInstruction(), llvm::expandDivision(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), llvm::expandRemainder(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), findPHIToPartitionLoops(), FoldBlockIntoPredecessor(), FoldTwoEntryPHINode(), GetLoadValueForLoad(), HandleCallsInBlockInlinedThroughInvoke(), HoistThenElseCodeToIf(), INITIALIZE_PASS(), InlineCallIfPossible(), llvm::InlineFunction(), insertFastDiv(), LowerAtomicCmpXchgInst(), LowerAtomicRMWInst(), llvm::IntrinsicLowering::LowerIntrinsicCall(), LowerNegateToMultiply(), llvm::IntrinsicLowering::LowerToByteSwap(), llvm::MapValue(), llvm::BitcodeReader::MaterializeModule(), llvm::MergeBasicBlockIntoOnlyPred(), llvm::MergeBlockIntoPredecessor(), mergeEmptyReturnBlocks(), OptimizeGlobalAddressOfMalloc(), patchAndReplaceAllUsesWith(), promoteSingleBlockAlloca(), llvm::PHINode::removeIncomingValue(), llvm::BasicBlock::removePredecessor(), llvm::LibCallSimplifier::replaceAllUsesWith(), llvm::DIType::replaceAllUsesWith(), replaceAndRecursivelySimplifyImpl(), ReplaceCallWith(), llvm::SCEVExpander::replaceCongruentIVs(), llvm::InstCombiner::ReplaceInstUsesWith(), llvm::ReplaceInstWithValue(), ReplaceUsesOfWith(), llvm::ConstantArray::replaceUsesOfWithOnConstant(), llvm::ConstantStruct::replaceUsesOfWithOnConstant(), llvm::ConstantVector::replaceUsesOfWithOnConstant(), llvm::BlockAddress::replaceUsesOfWithOnConstant(), llvm::ConstantExpr::replaceUsesOfWithOnConstant(), llvm::BitcodeReaderValueList::ResolveConstantForwardRefs(), RewriteHeapSROALoadUser(), rewriteSingleStoreAlloca(), llvm::LoadAndStorePromoter::run(), simplifyOneLoop(), SinkThenElseCodeToEnd(), speculatePHINodeLoads(), speculateSelectInstLoads(), llvm::SplitLandingPadPredecessors(), SRAGlobal(), tryPromoteAllocaToVector(), tryToMakeAllocaBePromotable(), TryToOptimizeStoreOfMallocToGlobal(), TryToShrinkGlobalToBoolean(), llvm::TryToSimplifyUncondBranchFromEmptyBlock(), TryToSimplifyUncondBranchWithICmpInIt(), llvm::UnrollLoop(), llvm::UpgradeIntrinsicCall(), llvm::ObjectSizeOffsetEvaluator::visitPHINode(), and llvm::BasicBlock::~BasicBlock().

void Value::setName ( const Twine Name)

setName() - Change the name of the value, choosing a new unique name if the provided name is taken.

Parameters:
NameThe new name; or "" if the value's name should be removed.

Definition at line 176 of file Value.cpp.

References llvm::StringMapEntry< ValueTy >::Create(), llvm::StringMapEntry< ValueTy >::Destroy(), llvm::StringRef::empty(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT >::erase(), F(), llvm::StringRef::find_first_of(), getContext(), getName(), getSymTab(), getType(), hasName(), llvm::LLVMContextImpl::IntrinsicIDCache, llvm::Twine::isTriviallyEmpty(), MDStringVal, llvm::StringRef::npos, llvm::LLVMContext::pImpl, llvm::StringMapEntry< ValueTy >::setValue(), llvm::AArch64DB::ST, and llvm::Twine::toStringRef().

Referenced by llvm::AllocaInst::AllocaInst(), llvm::Argument::Argument(), llvm::BinaryOperator::BinaryOperator(), llvm::CloneBasicBlock(), llvm::CmpInst::CmpInst(), llvm::IRBuilderBase::CreateGlobalString(), FoldBlockIntoPredecessor(), llvm::FoldBranchToCommonDest(), FoldCondBranchOnPHI(), forceRenaming(), generateUnsignedDivisionCode(), llvm::GlobalValue::GlobalValue(), INITIALIZE_PASS(), llvm::IRBuilderDefaultInserter< true >::InsertHelper(), llvm::LoadInst::LoadInst(), llvm::IntrinsicLowering::LowerIntrinsicCall(), NegateValue(), ReplaceCallWith(), llvm::ShuffleVectorInst::ShuffleVectorInst(), llvm::SplitLandingPadPredecessors(), StripSymtab(), SwitchToLookupTable(), takeName(), llvm::UpgradeIntrinsicCall(), UpgradeIntrinsicFunction1(), and UpgradeSSE41Function().

void llvm::Value::setValueName ( ValueName VN) [inline]

Definition at line 216 of file Value.h.

References Name.

Referenced by llvm::MDString::get().

void llvm::Value::setValueSubclassData ( unsigned short  D) [inline, protected]

Definition at line 489 of file Value.h.

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

References I.

Referenced by shuffleValueUseLists().

Strips like stripInBoundsConstantOffsets but also accumulates the constant offset stripped.

Stores the resulting constant offset stripped into the APInt provided. The provided APInt will be extended or truncated as needed to be the correct bitwidth for an offset of this pointer type.

If this is called on a non-pointer value, it returns 'this'.

Definition at line 435 of file Value.cpp.

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

Referenced by llvm::GlobalAlias::getBaseObject(), isDereferenceablePointer(), and stripAndAccumulateInBoundsConstantOffsets().

Definition at line 416 of file Value.h.

References stripAndAccumulateInBoundsConstantOffsets().

Strips off unneeded pointer casts and all-constant GEPs from the specified value, returning the original pointer value.

If this is called on a non-pointer value, it returns 'this'.

Definition at line 431 of file Value.cpp.

Referenced by stripInBoundsConstantOffsets().

Definition at line 402 of file Value.h.

References stripInBoundsConstantOffsets().

Strips off unneeded pointer casts and any in-bounds offsets from the specified value, returning the original pointer value.

If this is called on a non-pointer value, it returns 'this'.

Definition at line 472 of file Value.cpp.

Referenced by llvm::GlobalAlias::getBaseObject(), and stripInBoundsOffsets().

Definition at line 427 of file Value.h.

References stripInBoundsOffsets().

Reimplemented in llvm::Constant.

Definition at line 384 of file Value.h.

References stripPointerCasts().

Strips off any unneeded pointer casts and all-zero GEPs from the specified value, returning the original uncasted value.

If this is called on a non-pointer value, it returns 'this'.

Definition at line 427 of file Value.cpp.

Referenced by llvm::collectUsedGlobalVariables(), FindUsedValues(), and stripPointerCastsNoFollowAliases().

Definition at line 393 of file Value.h.

References stripPointerCastsNoFollowAliases().

void Value::takeName ( Value V)

Definition at line 248 of file Value.h.

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

Definition at line 243 of file Value.h.

Referenced by AddReachableCodeToWorklist(), llvm::SelectionDAGBuilder::CopyToExportRegsIfNeeded(), DeadPHICycle(), llvm::DeleteDeadBlock(), DeleteDeadInstruction(), deleteDeadInstruction(), DeleteInstructionInBlock(), llvm::MDNode::deleteTemporary(), llvm::DemotePHIToStack(), llvm::DemoteRegToStack(), llvm::Constant::destroyConstantImpl(), llvm::AsmPrinter::doFinalization(), llvm::InstCombiner::DoOneIteration(), llvm::InstCombiner::EraseInstFromFunction(), llvm::objcarc::EraseInstruction(), getAdjustedPtr(), hasAddressTakenAndUsed(), hasUseOtherThanLLVMUsed(), INITIALIZE_PASS(), llvm::InlineFunction(), llvm::isInstructionTriviallyDead(), isOnlyUsedInEntryBlock(), isUsedOutsideOfDefiningBlock(), LinearizeExprTree(), llvm::SelectionDAGBuilder::LowerCallOperands(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::BitcodeReader::MaterializeModule(), OptimizeAwayTrappingUsesOfLoads(), OptimizeCmpExpression(), OptimizeExtractBits(), OptimizeGlobalAddressOfMalloc(), passingValueIsAlwaysUndefined(), llvm::AssemblyWriter::printBasicBlock(), promoteSingleBlockAlloca(), llvm::RecursivelyDeleteTriviallyDeadInstructions(), RemoveDeadConstant(), removeDeadUsersOfConstant(), replaceAllUsesWith(), ReplaceCallWith(), ReplaceUsesOfMallocWithGlobal(), RewriteUsesOfClonedInstructions(), RewriteUsesOfLoadForHeapSRoA(), llvm::LoadAndStorePromoter::run(), llvm::Inliner::runOnSCC(), llvm::FunctionLoweringInfo::set(), llvm::FastISel::CallLoweringInfo::setCallee(), llvm::TargetLowering::CallLoweringInfo::setCallee(), shuffleValueUseLists(), llvm::InstCombiner::SimplifyDivRemOfSelect(), SinkCast(), SinkThenElseCodeToEnd(), speculatePHINodeLoads(), speculateSelectInstLoads(), SRAGlobal(), tryToMakeAllocaBePromotable(), TryToShrinkGlobalToBoolean(), llvm::PtrUseVisitor< SliceBuilder >::visitGetElementPtrInst(), WriteUseList(), llvm::BasicBlock::~BasicBlock(), and ~Value().

Definition at line 250 of file Value.h.

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

Reimplemented in llvm::Instruction.

Definition at line 265 of file Value.h.

References user_begin().

Definition at line 261 of file Value.h.

Definition at line 263 of file Value.h.

Definition at line 266 of file Value.h.

References user_begin(), and user_end().

Referenced by llvm::InstCombineWorklist::AddUsersToWorkList(), AllCallersPassInValidPointerForArgument(), AllGlobalLoadUsesSimpleEnoughForHeapSRA(), AllUsesOfLoadedValueWillTrapIfNull(), AllUsesOfValueWillTrapIfNull(), AlmostDeadIV(), BlockIsSimpleEnoughToThreadThrough(), ChangeCalleesToFastCall(), collectUsesWithPtrTypes(), enqueueUsersInWorklist(), llvm::FindAllocaDbgDeclare(), FindInitTrampolineFromAlloca(), llvm::CodeExtractor::findInputsOutputs(), FindSingleUseIdentifiedObject(), getUniqueCastUse(), GlobalUsersSafeToSRA(), hasLifetimeMarkers(), hasOutsideLoopUser(), hasUsesOutsideLoop(), llvm::isAllocaPromotable(), isAllocSiteRemovable(), llvm::Constant::isConstantUsed(), llvm::Function::isDefTriviallyDead(), isHighCostExpansion(), isOnlyUsedInEntryBlock(), IsOnlyUsedInZeroEqualityComparison(), isSafeAndProfitableToSinkLoad(), isSafePHIToSpeculate(), isSafeSelectToSpeculate(), isSafeSROAElementUse(), llvm::isSafeToDestroyConstant(), isUsedByLifetimeMarker(), isUsedOutsideOfDefiningBlock(), IsUserOfGlobalSafeForSRA(), LoadUsesSimpleEnoughForHeapSRA(), llvm::LowerDbgDeclare(), NegateValue(), OnlyUsedBy(), llvm::onlyUsedByLifetimeMarkers(), ProcessUGT_ADDCST_ADD(), ProcessUMulZExtIdiom(), promoteSingleBlockAlloca(), PushDefUseChildren(), pushIVUsers(), RemoveNestAttribute(), replaceAndRecursivelySimplifyImpl(), ReplaceUsesOfWith(), rewriteNonInstructionUses(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), llvm::SparseSolver::Solve(), swapMayExposeCSEOpportunities(), tryPromoteAllocaToVector(), tryToMakeAllocaBePromotable(), TryToShrinkGlobalToBoolean(), usedInGlobalVarDef(), usedInOneFunc(), useFuncSeen(), and ValueIsOnlyUsedLocallyOrStoredToOneGlobal().

Definition at line 269 of file Value.h.

References user_begin(), and user_end().

Definition at line 254 of file Value.h.

References use_begin(), and use_end().


Friends And Related Function Documentation

friend class ValueHandleBase [friend]

Definition at line 74 of file Value.h.

friend class ValueSymbolTable [friend]

Definition at line 73 of file Value.h.


Member Data Documentation

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

Definition at line 448 of file Value.h.

Referenced by llvm::getOrEnforceKnownAlignment(), and WriteInstruction().


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