LLVM API Documentation

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

#include <User.h>

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

List of all members.

Classes

struct  value_op_iterator

Public Types

typedef Useop_iterator
typedef const Useconst_op_iterator
typedef iterator_range
< op_iterator
op_range
typedef iterator_range
< const_op_iterator
const_op_range

Public Member Functions

 ~User ()
void operator delete (void *Usr)
 operator delete - free memory allocated for User and Use objects
void operator delete (void *, unsigned)
 placement delete - required by std, but never called.
void operator delete (void *, unsigned, bool)
 placement delete - required by std, but never called.
ValuegetOperand (unsigned i) const
void setOperand (unsigned i, Value *Val)
const UsegetOperandUse (unsigned i) const
UsegetOperandUse (unsigned i)
unsigned getNumOperands () const
op_iterator op_begin ()
const_op_iterator op_begin () const
op_iterator op_end ()
const_op_iterator op_end () const
op_range operands ()
const_op_range operands () const
value_op_iterator value_op_begin ()
value_op_iterator value_op_end ()
iterator_range< value_op_iteratoroperand_values ()
void dropAllReferences ()
void replaceUsesOfWith (Value *From, Value *To)

Static Public Member Functions

static bool classof (const Value *V)

Protected Member Functions

void * operator new (size_t s, unsigned Us)
 User (Type *ty, unsigned vty, Use *OpList, unsigned NumOps)
UseallocHungoffUses (unsigned) const
void dropHungoffUses ()
template<int Idx>
UseOp ()
template<int Idx>
const UseOp () const

Static Protected Member Functions

template<int Idx, typename U >
static UseOpFrom (const U *that)

Protected Attributes

unsigned NumOperands
UseOperandList

Friends

struct HungoffOperandTraits

Detailed Description

Definition at line 35 of file User.h.


Member Typedef Documentation

Definition at line 116 of file User.h.

Definition at line 118 of file User.h.

Definition at line 115 of file User.h.

Definition at line 117 of file User.h.


Constructor & Destructor Documentation

llvm::User::User ( Type ty,
unsigned  vty,
Use OpList,
unsigned  NumOps 
) [inline, protected]

Definition at line 54 of file User.h.

llvm::User::~User ( ) [inline]

Definition at line 64 of file User.h.

References NumOperands, OperandList, and llvm::Use::zap().


Member Function Documentation

Use * llvm::User::allocHungoffUses ( unsigned  N) const [protected]

Reimplemented in llvm::PHINode.

Definition at line 45 of file User.cpp.

References llvm::Use::initTags().

static bool llvm::User::classof ( const Value V) [inline, static]

Reimplemented in llvm::AddrSpaceCastInst, llvm::BitCastInst, llvm::PtrToIntInst, llvm::IntToPtrInst, llvm::FPToSIInst, llvm::FPToUIInst, llvm::SIToFPInst, llvm::UIToFPInst, llvm::FPExtInst, llvm::FPTruncInst, llvm::SExtInst, llvm::ZExtInst, llvm::TruncInst, llvm::UnreachableInst, llvm::ResumeInst, llvm::InvokeInst, llvm::IndirectBrInst, llvm::SwitchInst, llvm::BranchInst, llvm::ReturnInst, llvm::LandingPadInst, llvm::PHINode, llvm::InsertValueInst, llvm::ExtractValueInst, llvm::ShuffleVectorInst, llvm::InsertElementInst, llvm::ExtractElementInst, llvm::VAArgInst, llvm::SelectInst, llvm::CallInst, llvm::FCmpInst, llvm::UndefValue, llvm::ConstantExpr, llvm::ICmpInst, llvm::GetElementPtrInst, llvm::CmpInst, llvm::BlockAddress, llvm::AtomicRMWInst, llvm::ConstantDataVector, llvm::ConstantDataArray, llvm::CastInst, llvm::ConstantDataSequential, llvm::AtomicCmpXchgInst, llvm::ConstantPointerNull, llvm::ConstantVector, llvm::Function, llvm::FenceInst, llvm::ConstantStruct, llvm::Instruction, llvm::StoreInst, llvm::BinaryOperator, llvm::ConstantArray, llvm::GlobalValue, llvm::ConcreteOperator< PossiblyExactOperator, Instruction::SDiv >, llvm::ConcreteOperator< OverflowingBinaryOperator, Instruction::Add >, llvm::ConcreteOperator< OverflowingBinaryOperator, Instruction::Sub >, llvm::ConcreteOperator< OverflowingBinaryOperator, Instruction::Shl >, llvm::ConcreteOperator< PossiblyExactOperator, Instruction::UDiv >, llvm::ConcreteOperator< PossiblyExactOperator, Instruction::LShr >, llvm::ConcreteOperator< Operator, Instruction::GetElementPtr >, llvm::ConcreteOperator< PossiblyExactOperator, Instruction::AShr >, llvm::ConcreteOperator< OverflowingBinaryOperator, Instruction::Mul >, llvm::ConcreteOperator< Operator, Instruction::PtrToInt >, llvm::ConstantAggregateZero, llvm::FPMathOperator, llvm::VACopyInst, llvm::VAEndInst, llvm::VAStartInst, llvm::ConstantFP, llvm::MemMoveInst, llvm::LoadInst, llvm::MemCpyInst, llvm::MemTransferInst, llvm::ConstantInt, llvm::MemSetInst, llvm::MemIntrinsic, llvm::GlobalVariable, llvm::PossiblyExactOperator, llvm::AllocaInst, llvm::Constant, llvm::OverflowingBinaryOperator, llvm::UnaryInstruction, llvm::GlobalAlias, llvm::DbgValueInst, llvm::DbgDeclareInst, llvm::TerminatorInst, llvm::DbgInfoIntrinsic, llvm::Operator, llvm::GlobalObject, and llvm::IntrinsicInst.

Definition at line 172 of file User.h.

void llvm::User::dropAllReferences ( ) [inline]
void llvm::User::dropHungoffUses ( ) [inline, protected]

Definition at line 110 of file User.h.

References NumOperands.

Referenced by llvm::LandingPadInst::addClause(), llvm::MachineModuleInfo::AnalyzeModule(), CanEvaluateShuffled(), canTrapImpl(), llvm::GetElementPtrInst::clone_impl(), llvm::CallInst::clone_impl(), llvm::ReturnInst::clone_impl(), llvm::BranchInst::clone_impl(), llvm::InvokeInst::clone_impl(), llvm::collectUsedGlobalVariables(), computeKnownBits(), llvm::constant_iterator::constant_iterator(), llvm::ConstantExprKeyType::ConstantExprKeyType(), ConstantFold(), llvm::ConstantFoldLoadThroughGEPConstantExpr(), DeleteDeadInstruction(), deleteDeadInstruction(), emitGlobalConstantArray(), emitGlobalConstantStruct(), llvm::InstCombiner::EraseInstFromFunction(), EvaluateExpression(), EvaluateGEPOffsetExpression(), evaluateICmpRelation(), EvaluateStoreInto(), FindUsedValues(), findUsedValues(), llvm::InstCombiner::FoldCmpLoadFromIndexedGlobal(), llvm::InstCombiner::FoldGEPICmp(), llvm::InstCombiner::FoldSelectOpOp(), GEPToVectorIndex(), llvm::ConstantExpr::getAsInstruction(), getGEPInductionOperand(), llvm::SCEVExpander::getIVIncOperand(), getLoopPhiForCounter(), getMergedGlobalExpr(), getNoopInput(), llvm::CallInst::getNumArgOperands(), llvm::GEPOperator::getNumIndices(), llvm::GetElementPtrInst::getNumIndices(), GetOffsetFromIndex(), llvm::Constant::getRelocationInfo(), llvm::ConstantVector::getSplatValue(), llvm::ConstantExpr::getWithOperandReplaced(), llvm::ConstantExpr::getWithOperands(), llvm::GetElementPtrInst::hasAllConstantIndices(), llvm::GetElementPtrInst::hasAllZeroIndices(), llvm::GEPOperator::hasIndices(), llvm::GetElementPtrInst::hasIndices(), llvm::Loop::hasLoopInvariantOperands(), llvm::Instruction::isIdenticalToWhenDefined(), isLikelyComplexAddressComputation(), IsPointerOffset(), IsSafeComputationToRemove(), isSafeSROAElementUse(), llvm::isSafeToSpeculativelyExecute(), llvm::Instruction::isSameOperationAs(), isSimpleEnoughValueToCommitHelper(), IsUserOfGlobalSafeForSRA(), llvm::Loop::makeLoopInvariant(), llvm::MapValue(), mergeEmptyReturnBlocks(), llvm::HungoffOperandTraits< 2 >::op_end(), llvm::OptionalOperandTraits< GlobalVariable >::operands(), llvm::VariadicOperandTraits< CallInst, 1 >::operands(), llvm::HungoffOperandTraits< 2 >::operands(), llvm::constant_iterator::operator++(), llvm::ConstantExprKeyType::operator==(), llvm::AssemblyWriter::printInstruction(), llvm::RecursivelyDeleteTriviallyDeadInstructions(), RemapInstruction(), llvm::SwitchInst::removeCase(), RemoveDeadConstant(), llvm::IndirectBrInst::removeDestination(), llvm::PHINode::removeIncomingValue(), RemoveInstInputs(), replaceUsesOfWith(), ReplaceUsesOfWith(), llvm::Constant::replaceUsesOfWithOnConstant(), llvm::GlobalVariable::replaceUsesOfWithOnConstant(), llvm::ConstantArray::replaceUsesOfWithOnConstant(), llvm::ConstantStruct::replaceUsesOfWithOnConstant(), llvm::ConstantVector::replaceUsesOfWithOnConstant(), llvm::ConstantExpr::replaceUsesOfWithOnConstant(), llvm::returnTypeIsEligibleForTailCall(), llvm::ExecutionEngine::runStaticConstructorsDestructors(), SimplifyWithOpReplaced(), SinkThenElseCodeToEnd(), SRAGlobal(), stripGetElementPtr(), upgradeGlobalArray(), ValueIsOnlyUsedLocallyOrStoredToOneGlobal(), VerifySubExpr(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::Interpreter::visitReturnInst(), llvm::InstCombiner::visitReturnInst(), WriteConstants(), and WriteInstruction().

Value* llvm::User::getOperand ( unsigned  i) const [inline]

Definition at line 90 of file User.h.

References NumOperands, and OperandList.

Referenced by llvm::AliasSetTracker::add(), llvm::AddCatchInfo(), AddReachableCodeToWorklist(), AddressIsTaken(), llvm::MachineModuleInfo::AnalyzeModule(), BreakUpSubtract(), CanEvaluateSExtd(), CanEvaluateShifted(), CanEvaluateShuffled(), CanEvaluateTruncated(), CanEvaluateZExtd(), canFoldZeroCheckIntoBranch(), llvm::CannotBeNegativeZero(), CanPHITrans(), CheapToScalarize(), checkForNegativeOperand(), CleanupPointerRootUsers(), llvm::AllocaInst::clone_impl(), llvm::LoadInst::clone_impl(), llvm::StoreInst::clone_impl(), llvm::AtomicCmpXchgInst::clone_impl(), llvm::AtomicRMWInst::clone_impl(), llvm::SelectInst::clone_impl(), llvm::VAArgInst::clone_impl(), llvm::ExtractElementInst::clone_impl(), llvm::InsertElementInst::clone_impl(), llvm::ShuffleVectorInst::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(), CollectBSwapParts(), CollectInsertionElements(), CollectShuffleElements(), CollectSingleShuffleElements(), llvm::collectUsedGlobalVariables(), CommitValueTo(), llvm::InstCombiner::commonCastTransforms(), llvm::InstCombiner::commonIDivTransforms(), llvm::InstCombiner::commonIRemTransforms(), llvm::InstCombiner::commonPointerCastTransforms(), llvm::InstCombiner::commonShiftTransforms(), computeKnownBits(), llvm::ComputeMultiple(), ComputeNumSignBits(), llvm::ConstantExprKeyType::ConstantExprKeyType(), ConstantFold(), llvm::ConstantFoldCompareInstruction(), llvm::ConstantFoldLoadFromConstPtr(), ConstantFoldLoadInst(), ConstantFoldLoadThroughBitcast(), llvm::ConstantFoldLoadThroughGEPConstantExpr(), llvm::ConstantFoldSelectInstruction(), llvm::ConvertDebugDeclareToDebugValue(), ConvertShiftToMul(), createReplacementInstr(), decomposeBitTestICmp(), DecomposeGEPExpression(), DeleteDeadInstruction(), deleteDeadInstruction(), DemandedBitsLHSMask(), detectLog2OfHalf(), llvm::InstCombiner::DoOneIteration(), emitGlobalConstantArray(), emitGlobalConstantStruct(), emitGlobalConstantVector(), EvaluateExpression(), EvaluateGEPOffsetExpression(), evaluateICmpRelation(), EvaluateStoreInto(), llvm::expandDivision(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), llvm::expandRemainder(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), ExtractConstantBytes(), ExtractEquivalentCondition(), llvm::FCmpInst::FCmpInst(), FindInitTrampoline(), FindInitTrampolineFromAlloca(), FindInitTrampolineFromBB(), llvm::SelectionDAGBuilder::FindMergedConditions(), FindSingleUseMultiplyFactors(), FindUsedValues(), findUsedValues(), llvm::InstCombiner::FoldAndOfFCmps(), llvm::InstCombiner::FoldAndOfICmps(), llvm::FoldBranchToCommonDest(), llvm::InstCombiner::FoldCmpLoadFromIndexedGlobal(), foldConstantCastPair(), llvm::InstCombiner::FoldFCmp_IntToFP_Cst(), llvm::InstCombiner::foldFMulConst(), llvm::InstCombiner::FoldGEPICmp(), llvm::InstCombiner::FoldICmpDivCst(), llvm::InstCombiner::FoldICmpShrCst(), foldLogOpOfMaskedICmpsHelper(), FoldOperationIntoSelectOperand(), llvm::InstCombiner::FoldOrOfFCmps(), llvm::InstCombiner::FoldOrOfICmps(), foldSelectICmpAnd(), foldSelectICmpAndOr(), foldSelectInst(), llvm::InstCombiner::FoldSelectOpOp(), llvm::InstCombiner::FoldShiftByConstant(), foldUDivShl(), GatherConstantCompares(), llvm::gep_type_begin(), GEPToVectorIndex(), llvm::InsertValueInst::getAggregateOperand(), llvm::GlobalAlias::getAliasee(), llvm::CallInst::getArgOperand(), llvm::AllocaInst::getArraySize(), getBinOpsForFactorization(), llvm::SwitchInst::CaseIteratorT< SwitchInst, ConstantInt, BasicBlock >::getCaseValue(), getCommonReturnValue(), llvm::AtomicCmpXchgInst::getCompareOperand(), llvm::BinaryOperator::getFNegArgument(), getGEPInductionOperand(), llvm::InsertValueInst::getInsertedValueOperand(), llvm::SCEVExpander::getIVIncOperand(), getLoopPhiForCounter(), getMergedGlobalExpr(), llvm::BinaryOperator::getNegArgument(), llvm::AtomicCmpXchgInst::getNewValOperand(), getNoopInput(), llvm::BinaryOperator::getNotArgument(), GetOffsetFromIndex(), llvm::LoadInst::getPointerOperand(), llvm::StoreInst::getPointerOperand(), llvm::GEPOperator::getPointerOperand(), llvm::PtrToIntOperator::getPointerOperand(), llvm::AtomicCmpXchgInst::getPointerOperand(), llvm::GetElementPtrInst::getPointerOperand(), llvm::PtrToIntInst::getPointerOperand(), llvm::Constant::getRelocationInfo(), GetShiftedValue(), getShuffleAndOtherOprd(), llvm::ScalarEvolution::getSignedRange(), llvm::ConstantVector::getSplatValue(), llvm::BasicBlock::getTerminatingMustTailCall(), llvm::ScalarEvolution::getUnsignedRange(), llvm::DbgValueInst::getValue(), getValueFromFromCondition(), llvm::StoreInst::getValueOperand(), getWideOperand(), llvm::ConstantExpr::getWithOperandReplaced(), llvm::ConstantExpr::getWithOperands(), llvm::GetElementPtrInst::hasAllConstantIndices(), llvm::GetElementPtrInst::hasAllZeroIndices(), llvm::Loop::hasLoopInvariantOperands(), hoistBeforePos(), llvm::BinaryOperator::init(), insertFastDiv(), InstCombineLoadCast(), InstCombineStoreToCast(), isAllocSiteRemovable(), llvm::AllocaInst::isArrayAllocation(), IsConstantOffsetFromGlobal(), isEliminableCastPair(), isExtractBitsCandidateUse(), isFMulOrFDivWithConstant(), isFormingBranchFromSelectProfitable(), isHighCostExpansion(), llvm::CastInst::isIntegerCast(), isInterestingPointerComparisonOrSubtraction(), isLikelyComplexAddressComputation(), llvm::CastInst::isLosslessCast(), llvm::CastInst::isNoopCast(), IsPointerOffset(), isProfitableToFoldUnconditional(), isSafeAndProfitableToSinkLoad(), IsSafeComputationToRemove(), isSafeSROAElementUse(), isSafeToEliminateVarargsCast(), llvm::isSafeToSpeculativelyExecute(), isSameCompare(), llvm::Instruction::isSameOperationAs(), isSimpleEnoughValueToCommitHelper(), isStrideMul(), IsUserOfGlobalSafeForSRA(), LdStHasDebugValue(), LinearizeExprTree(), LookThroughFPExtensions(), llvm::SelectionDAGBuilder::LowerCallOperands(), llvm::FastISel::lowerCallTo(), nvptx::LowerConstant(), lowerConstant(), llvm::IntrinsicLowering::LowerIntrinsicCall(), LowerNegateToMultiply(), llvm::Loop::makeLoopInvariant(), llvm::MapValue(), llvm::PatternMatch::BinaryOp_match< LHS_t, RHS_t, Opcode >::match(), llvm::PatternMatch::BinOp2_match< LHS_t, RHS_t, Opc1, Opc2 >::match(), matchPairwiseReduction(), matchPairwiseReductionAtLevel(), MatchSelectPattern(), matchVectorSplittingReduction(), mergeEmptyReturnBlocks(), needsLFTR(), NegateValue(), llvm::constant_iterator::operator*(), llvm::ConstantExprKeyType::operator==(), OptimizeAwayTrappingUsesOfLoads(), OptimizeCmpExpression(), llvm::FastISel::optimizeCmpPredicate(), OptimizeExtractBits(), OptimizeIntegerToVectorInsertions(), OptimizeIntToFloatBitCast(), OptimizeNoopCopyExpression(), PerformHeapAllocSRoA(), llvm::PointerMayBeCaptured(), llvm::AssemblyWriter::printInstruction(), ProcessUAddIdiom(), ProcessUGT_ADDCST_ADD(), ProcessUMulZExtIdiom(), llvm::RecursivelyDeleteTriviallyDeadInstructions(), RemapInstruction(), llvm::AliasSetTracker::remove(), RemoveDeadConstant(), RemoveInstInputs(), replaceUsesOfWith(), ReplaceUsesOfWith(), llvm::GlobalVariable::replaceUsesOfWithOnConstant(), llvm::ConstantStruct::replaceUsesOfWithOnConstant(), llvm::ConstantVector::replaceUsesOfWithOnConstant(), llvm::ConstantExpr::replaceUsesOfWithOnConstant(), llvm::returnTypeIsEligibleForTailCall(), reuseOrInsertFastDiv(), rewriteSingleStoreAlloca(), llvm::NVPTXLowerAggrCopies::runOnFunction(), llvm::UnifyFunctionExitNodes::runOnFunction(), llvm::ExecutionEngine::runStaticConstructorsDestructors(), llvm::FastISel::selectBinaryOp(), llvm::FastISel::selectBitCast(), llvm::FastISel::selectCast(), llvm::FastISel::selectExtractValue(), llvm::FastISel::selectGetElementPtr(), llvm::FastISel::selectOperator(), llvm::FastISel::selectPatchpoint(), llvm::FastISel::selectStackmap(), ShouldBreakUpSubtract(), ShrinkDemandedConstant(), SimplifyAndOfICmps(), SimplifyAssociativeBinOp(), llvm::InstCombiner::SimplifyDivRemOfSelect(), SimplifyICmpInst(), llvm::SimplifyInstruction(), SimplifyOrOfICmps(), SimplifyWithOpReplaced(), SinkCast(), SinkShiftAndTruncate(), SinkThenElseCodeToEnd(), llvm::InstCombiner::SliceUpIllegalIntegerPHI(), SRAGlobal(), stripGetElementPtr(), swapMayExposeCSEOpportunities(), SymbolicallyEvaluateGEP(), ThreadBinOpOverSelect(), tryFactorization(), tryPromoteAllocaToVector(), TryToShrinkGlobalToBoolean(), TryToSimplifyUncondBranchWithICmpInIt(), upgradeGlobalArray(), ValueIsOnlyUsedLocallyOrStoredToOneGlobal(), VerifySubExpr(), llvm::InstCombiner::visitAdd(), llvm::InstCombiner::visitAddrSpaceCast(), llvm::Interpreter::visitAllocaInst(), llvm::InstCombiner::visitAnd(), llvm::InstCombiner::visitAShr(), llvm::Interpreter::visitAShr(), llvm::Interpreter::visitBinaryOperator(), llvm::InstCombiner::visitBitCast(), llvm::Interpreter::visitBitCastInst(), llvm::Interpreter::visitExtractElementInst(), llvm::InstCombiner::visitExtractElementInst(), llvm::InstCombiner::visitFAdd(), llvm::Interpreter::visitFCmpInst(), llvm::InstCombiner::visitFCmpInst(), llvm::InstCombiner::visitFDiv(), 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::visitFRem(), llvm::InstCombiner::visitFSub(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::Interpreter::visitICmpInst(), llvm::InstCombiner::visitICmpInst(), llvm::InstCombiner::visitICmpInstWithCastAndCast(), llvm::InstCombiner::visitICmpInstWithInstAndIntCst(), llvm::Interpreter::visitInsertElementInst(), llvm::InstCombiner::visitInsertElementInst(), llvm::Interpreter::visitInsertValueInst(), llvm::InstCombiner::visitInsertValueInst(), llvm::InstCombiner::visitIntToPtr(), llvm::Interpreter::visitIntToPtrInst(), llvm::InstCombiner::visitLandingPadInst(), llvm::InstCombiner::visitLoadInst(), llvm::InstCombiner::visitLShr(), llvm::Interpreter::visitLShr(), llvm::InstCombiner::visitMul(), llvm::InstCombiner::visitOr(), llvm::InstCombiner::visitPtrToInt(), llvm::Interpreter::visitPtrToIntInst(), llvm::InstCombiner::visitReturnInst(), llvm::InstCombiner::visitSDiv(), llvm::Interpreter::visitSelectInst(), llvm::InstCombiner::visitSelectInst(), llvm::InstCombiner::visitSelectInstWithICmp(), llvm::InstCombiner::visitSExt(), llvm::Interpreter::visitSExtInst(), llvm::InstCombiner::visitShl(), llvm::Interpreter::visitShl(), llvm::Interpreter::visitShuffleVectorInst(), llvm::InstCombiner::visitShuffleVectorInst(), llvm::Interpreter::visitSIToFPInst(), llvm::InstCombiner::visitSRem(), llvm::Interpreter::visitStoreInst(), llvm::InstCombiner::visitStoreInst(), llvm::InstCombiner::visitSub(), 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(), WriteConstants(), and WriteInstruction().

const Use& llvm::User::getOperandUse ( unsigned  i) const [inline]

Definition at line 105 of file User.h.

References NumOperands, and OperandList.

template<int Idx>
Use& llvm::User::Op ( ) [inline, protected]
template<int Idx>
const Use& llvm::User::Op ( ) const [inline, protected]

Definition at line 86 of file User.h.

Definition at line 121 of file User.h.

References OperandList.

Definition at line 123 of file User.h.

References NumOperands, and OperandList.

Definition at line 149 of file User.h.

References value_op_begin(), and value_op_end().

Referenced by findCallees().

Definition at line 127 of file User.h.

References op_begin(), and op_end().

void llvm::User::operator delete ( void *  Usr)

operator delete - free memory allocated for User and Use objects

Definition at line 74 of file User.cpp.

References NumOperands.

void llvm::User::operator delete ( void *  ,
unsigned   
) [inline]

placement delete - required by std, but never called.

Definition at line 70 of file User.h.

References llvm_unreachable.

void llvm::User::operator delete ( void *  ,
unsigned  ,
bool   
) [inline]

placement delete - required by std, but never called.

Definition at line 74 of file User.h.

References llvm_unreachable.

void * llvm::User::operator new ( size_t  s,
unsigned  Us 
) [protected]

Definition at line 59 of file User.cpp.

References llvm::Use::initTags(), NumOperands, and OperandList.

template<int Idx, typename U >
static Use& llvm::User::OpFrom ( const U *  that) [inline, static, protected]

Definition at line 78 of file User.h.

References op_begin(), and op_end().

void llvm::User::replaceUsesOfWith ( Value From,
Value To 
)

replaceUsesOfWith - Replaces all references to the "From" definition with references to the "To" definition.

Definition at line 26 of file User.cpp.

References getNumOperands(), getOperand(), and setOperand().

Referenced by llvm::DemoteRegToStack(), llvm::FoldBranchToCommonDest(), llvm::InstCombiner::FoldSPFofSPF(), OptimizeGlobalAddressOfMalloc(), and ReplaceUsesOfMallocWithGlobal().

void llvm::User::setOperand ( unsigned  i,
Value Val 
) [inline]

Definition at line 94 of file User.h.

References NumOperands, and OperandList.

Referenced by BreakUpSubtract(), llvm::InstCombiner::commonIDivTransforms(), llvm::InstCombiner::commonIRemTransforms(), llvm::InstCombiner::commonPointerCastTransforms(), llvm::InstCombiner::commonShiftTransforms(), ConvertShiftToMul(), DeleteDeadInstruction(), deleteDeadInstruction(), llvm::InstCombiner::FoldICmpDivCst(), llvm::InstCombiner::FoldICmpShrCst(), llvm::FoldReturnIntoUncondBranch(), GetShiftedValue(), llvm::InlineFunction(), InstCombineStoreToCast(), LinearizeExprTree(), LowerNegateToMultiply(), mergeEmptyReturnBlocks(), NegateValue(), ProcessUMulZExtIdiom(), llvm::RecursivelyDeleteTriviallyDeadInstructions(), RemapInstruction(), replaceUsesOfWith(), llvm::GlobalVariable::replaceUsesOfWithOnConstant(), llvm::BlockAddress::replaceUsesOfWithOnConstant(), llvm::GlobalAlias::setAliasee(), llvm::CallInst::setArgOperand(), llvm::Function::setPrefixData(), llvm::SwitchInst::CaseIt::setValue(), ShrinkDemandedConstant(), llvm::InstCombiner::SimplifyDivRemOfSelect(), SinkThenElseCodeToEnd(), SpeculativelyExecuteBB(), TryToSimplifyUncondBranchWithICmpInIt(), updateOperand(), llvm::InstCombiner::visitAllocaInst(), llvm::InstCombiner::visitExtractElementInst(), llvm::InstCombiner::visitFCmpInst(), llvm::InstCombiner::visitGetElementPtrInst(), llvm::InstCombiner::visitICmpInst(), llvm::InstCombiner::visitICmpInstWithInstAndIntCst(), llvm::InstCombiner::visitLoadInst(), llvm::InstCombiner::visitReturnInst(), llvm::InstCombiner::visitSelectInst(), llvm::InstCombiner::visitSelectInstWithICmp(), llvm::InstCombiner::visitShuffleVectorInst(), llvm::InstCombiner::visitSRem(), llvm::InstCombiner::visitStoreInst(), and llvm::InstCombiner::visitXor().

Definition at line 143 of file User.h.

References op_begin().

Referenced by operand_values().

Definition at line 146 of file User.h.

References op_end().

Referenced by operand_values().


Friends And Related Function Documentation

friend struct HungoffOperandTraits [friend]

Definition at line 39 of file User.h.


Member Data Documentation

OperandList - This is a pointer to the array of Uses for this User. For nodes of fixed arity (e.g. a binary operator) this array will live prefixed to some derived class instance. For nodes of resizable variable arity (e.g. PHINodes, SwitchInst etc.), this memory will be dynamically allocated and should be destroyed by the classes' virtual dtor.

Definition at line 51 of file User.h.

Referenced by llvm::LandingPadInst::addClause(), dropHungoffUses(), getOperand(), getOperandUse(), llvm::HungoffOperandTraits< 2 >::op_begin(), op_begin(), llvm::HungoffOperandTraits< 2 >::op_end(), op_end(), operator new(), llvm::SwitchInst::removeCase(), llvm::IndirectBrInst::removeDestination(), llvm::ConstantArray::replaceUsesOfWithOnConstant(), llvm::ConstantStruct::replaceUsesOfWithOnConstant(), llvm::ConstantVector::replaceUsesOfWithOnConstant(), llvm::ConstantExpr::replaceUsesOfWithOnConstant(), setOperand(), and ~User().


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