LLVM API Documentation
MDNode - a tuple of other values. More...
#include <Metadata.h>


Public Member Functions | |
| void | replaceOperandWith (unsigned i, Value *NewVal) |
| replaceOperandWith - Replace a specific operand. | |
| Value * | getOperand (unsigned i) const |
| getOperand - Return specified operand. | |
| unsigned | getNumOperands () const |
| getNumOperands - Return number of MDNode operands. | |
| bool | isFunctionLocal () const |
| isFunctionLocal - Return whether MDNode is local to a function. | |
| const Function * | getFunction () const |
| void | Profile (FoldingSetNodeID &ID) const |
Static Public Member Functions | |
| static MDNode * | get (LLVMContext &Context, ArrayRef< Value * > Vals) |
| static MDNode * | getWhenValsUnresolved (LLVMContext &Context, ArrayRef< Value * > Vals, bool isFunctionLocal) |
| static MDNode * | getIfExists (LLVMContext &Context, ArrayRef< Value * > Vals) |
| static MDNode * | getTemporary (LLVMContext &Context, ArrayRef< Value * > Vals) |
| static void | deleteTemporary (MDNode *N) |
| static bool | classof (const Value *V) |
| Methods for support type inquiry through isa, cast, and dyn_cast: | |
| static MDNode * | getMostGenericTBAA (MDNode *A, MDNode *B) |
| Methods for metadata merging. | |
| static MDNode * | getMostGenericFPMath (MDNode *A, MDNode *B) |
| static MDNode * | getMostGenericRange (MDNode *A, MDNode *B) |
Friends | |
| class | MDNodeOperand |
| class | LLVMContextImpl |
| struct | FoldingSetTrait< MDNode > |
MDNode - a tuple of other values.
Definition at line 72 of file Metadata.h.
Methods for support type inquiry through isa, cast, and dyn_cast:
Definition at line 163 of file Metadata.h.
References llvm::Value::getValueID(), and llvm::Value::MDNodeVal.
| void MDNode::deleteTemporary | ( | MDNode * | N | ) | [static] |
deleteTemporary - Deallocate a node created by getTemporary. The node must not have any users.
Definition at line 290 of file Metadata.cpp.
References llvm::SmallPtrSet< PtrType, SmallSize >::erase(), llvm::Value::getContext(), llvm::Value::getSubclassDataFromValue(), llvm::LLVMContextImpl::MDNodeSet, llvm::LLVMContextImpl::NonUniquedMDNodes, llvm::LLVMContext::pImpl, llvm::LeakDetector::removeGarbageObject(), llvm::FoldingSetImpl::RemoveNode(), and llvm::Value::use_empty().
Referenced by llvm::BitcodeReaderMDValueList::AssignValue(), llvm::MDBuilder::createAnonymousTBAARoot(), llvm::MapValue(), and llvm::DIType::replaceAllUsesWith().
| MDNode * MDNode::get | ( | LLVMContext & | Context, |
| ArrayRef< Value * > | Vals | ||
| ) | [static] |
Definition at line 266 of file Metadata.cpp.
Referenced by llvm::Module::addModuleFlag(), llvm::DebugRecVH::allUsesReplacedWith(), AppendMDNodeToInstForPtr(), AppendMDNodeToSourcePtr(), llvm::cleanseInlinedVariable(), llvm::MDBuilder::createAnonymousTBAARoot(), llvm::DIBuilder::createArrayType(), llvm::DIBuilder::createArtificialType(), llvm::DIBuilder::createBasicType(), llvm::MDBuilder::createBranchWeights(), llvm::DIBuilder::createClassType(), llvm::DIBuilder::createCompileUnit(), llvm::DIBuilder::createComplexVariable(), llvm::DIBuilder::createEnumerationType(), llvm::DIBuilder::createEnumerator(), llvm::DIBuilder::createFile(), createFilePathPair(), llvm::MDBuilder::createFPMath(), llvm::DIBuilder::createFriend(), llvm::DIBuilder::createFunction(), llvm::DIBuilder::createGlobalVariable(), llvm::DIBuilder::createImportedDeclaration(), createImportedModule(), llvm::DIBuilder::createInheritance(), llvm::createInlinedVariable(), llvm::DIBuilder::createLexicalBlock(), llvm::DIBuilder::createLexicalBlockFile(), llvm::DIBuilder::createLocalVariable(), llvm::DIBuilder::createMemberPointerType(), llvm::DIBuilder::createMemberType(), llvm::DIBuilder::createMethod(), llvm::DIBuilder::createNameSpace(), llvm::DIBuilder::createNullPtrType(), llvm::DIBuilder::createObjCIVar(), llvm::DIBuilder::createObjCProperty(), llvm::DIBuilder::createObjectPointerType(), llvm::DIBuilder::createPointerType(), llvm::DIBuilder::createQualifiedType(), llvm::MDBuilder::createRange(), llvm::DIBuilder::createReferenceType(), llvm::DIBuilder::createStaticMemberType(), llvm::DIBuilder::createStaticVariable(), llvm::DIBuilder::createStructType(), llvm::DIBuilder::createSubroutineType(), llvm::MDBuilder::createTBAANode(), llvm::MDBuilder::createTBAARoot(), llvm::MDBuilder::createTBAAScalarTypeNode(), llvm::MDBuilder::createTBAAStructNode(), llvm::MDBuilder::createTBAAStructTagNode(), llvm::MDBuilder::createTBAAStructTypeNode(), llvm::DIBuilder::createTemplateTypeParameter(), llvm::DIBuilder::createTemplateValueParameter(), llvm::DIBuilder::createTypedef(), llvm::DIBuilder::createUnionType(), llvm::DIBuilder::createUnspecifiedParameter(), llvm::DIBuilder::createVectorType(), llvm::DebugRecVH::deleted(), getMostGenericRange(), getMostGenericTBAA(), llvm::DIBuilder::getOrCreateArray(), llvm::DIBuilder::getOrCreateSubrange(), llvm::DIBuilder::insertDbgValueIntrinsic(), llvm::DIBuilder::insertDeclare(), LLVMMDNodeInContext(), llvm::MapValue(), llvm::BranchInst::swapSuccessors(), and llvm::UpgradeIntrinsicCall().
| const Function * MDNode::getFunction | ( | ) | const |
Definition at line 188 of file Metadata.cpp.
References assertLocalFunction(), F(), getFunctionForValue(), getNumOperands(), getOperand(), and isFunctionLocal().
Referenced by llvm::ValueEnumerator::incorporateFunction(), and llvm::Value::print().
| MDNode * MDNode::getIfExists | ( | LLVMContext & | Context, |
| ArrayRef< Value * > | Vals | ||
| ) | [static] |
Definition at line 276 of file Metadata.cpp.
Referenced by llvm::FindAllocaDbgDeclare().
Definition at line 406 of file Metadata.cpp.
References llvm::APFloat::cmpLessThan, llvm::APFloat::compare(), and getOperand().
Referenced by patchReplacementInstruction().
Definition at line 452 of file Metadata.cpp.
References llvm::ARM_PROC::A, addRange(), get(), llvm::Value::getContext(), getNumOperands(), getOperand(), llvm::ConstantInt::getValue(), llvm::ConstantRange::isFullSet(), llvm::SmallVectorImpl< T >::resize(), llvm::SmallVectorTemplateCommon< T, typename >::size(), llvm::APInt::slt(), and tryMergeRange().
Referenced by patchReplacementInstruction().
Methods for metadata merging.
Definition at line 461 of file TypeBasedAliasAnalysis.cpp.
References llvm::ARM_PROC::A, EnableStructPathTBAA, get(), llvm::Value::getContext(), getNumOperands(), getOperand(), llvm::SmallVectorTemplateBase< T, isPodLike< T >::value >::push_back(), llvm::AArch64ISD::Ret, and llvm::SmallVectorTemplateCommon< T >::size().
Referenced by patchReplacementInstruction().
| unsigned llvm::MDNode::getNumOperands | ( | ) | const [inline] |
getNumOperands - Return number of MDNode operands.
Definition at line 145 of file Metadata.h.
Referenced by llvm::Module::addModuleFlag(), AppendMDNodeToSourcePtr(), assertLocalFunction(), cacheAnnotationFromMD(), llvm::cleanseInlinedVariable(), llvm::computeMaskedBitsLoad(), llvm::ConstantFoldTerminator(), llvm::DIBuilder::createArtificialType(), llvm::createInlinedVariable(), llvm::DIBuilder::createObjectPointerType(), llvm::MachineInstr::emitError(), llvm::TargetLoweringObjectFileMachO::emitModuleFlags(), llvm::TargetLoweringObjectFileCOFF::emitModuleFlags(), GetBranchWeights(), llvm::DICompileUnit::getEnumTypes(), getField(), getFunction(), llvm::DICompileUnit::getGlobalVariables(), llvm::DICompileUnit::getImportedEntities(), getMostGenericRange(), getMostGenericTBAA(), llvm::DIVariable::getNumAddrElements(), llvm::DIArray::getNumElements(), llvm::DIDerivedType::getObjCProperty(), getOperand(), llvm::DICompileUnit::getRetainedTypes(), llvm::DICompileUnit::getSubprograms(), llvm::DISubprogram::getVariables(), llvm::DISubprogram::getVariablesNodes(), llvm::Loop::isAnnotatedParallel(), llvm::DIDescriptor::isLexicalBlock(), llvm::DIDescriptor::isLexicalBlockFile(), llvm::DISubprogram::isOptimized(), LLVMGetMDNodeOperands(), Profile(), llvm::DICompositeType::setTypeArray(), llvm::DISubrange::Verify(), llvm::DIFile::Verify(), llvm::DICompileUnit::Verify(), llvm::DIEnumerator::Verify(), llvm::DIBasicType::Verify(), llvm::DIDerivedType::Verify(), llvm::DICompositeType::Verify(), llvm::DITemplateTypeParameter::Verify(), llvm::DITemplateValueParameter::Verify(), llvm::DISubprogram::Verify(), llvm::DIGlobalVariable::Verify(), llvm::DIVariable::Verify(), llvm::DILexicalBlock::Verify(), llvm::DILexicalBlockFile::Verify(), llvm::DINameSpace::Verify(), llvm::DILocation::Verify(), llvm::DIObjCProperty::Verify(), llvm::DIImportedEntity::Verify(), llvm::WriteConstantInternal(), WriteMDNode(), and llvm::WriteMDNodeComment().
getOperand - Return specified operand.
Definition at line 305 of file Metadata.cpp.
References getNumOperands(), and getOperandPtr().
Referenced by llvm::Module::addModuleFlag(), AppendMDNodeToSourcePtr(), assertLocalFunction(), cacheAnnotationFromMD(), llvm::cleanseInlinedVariable(), llvm::computeMaskedBitsLoad(), llvm::ConstantFoldTerminator(), llvm::DIBuilder::createArtificialType(), llvm::CompileUnit::createGlobalVariableDIE(), llvm::createInlinedVariable(), llvm::DIBuilder::createObjectPointerType(), llvm::MachineInstr::emitError(), llvm::TargetLoweringObjectFileMachO::emitModuleFlags(), llvm::TargetLoweringObjectFileCOFF::emitModuleFlags(), llvm::FindAvailableLoadedValue(), GetBranchWeights(), llvm::DIDescriptor::getConstantField(), llvm::DIDescriptor::getDescriptorField(), llvm::DICompileUnit::getEnumTypes(), getField(), llvm::FPMathOperator::getFPAccuracy(), getFunction(), llvm::DIDescriptor::getFunctionField(), llvm::DIDescriptor::getGlobalVariableField(), llvm::DICompileUnit::getGlobalVariables(), llvm::DICompileUnit::getImportedEntities(), llvm::DIVariable::getInlinedAt(), llvm::DIDescriptor::getInt64Field(), llvm::Module::getModuleFlagsMetadata(), getMostGenericFPMath(), getMostGenericRange(), getMostGenericTBAA(), llvm::DIDerivedType::getObjCProperty(), llvm::DICompileUnit::getRetainedTypes(), llvm::DICompileUnit::getSubprograms(), llvm::DIDescriptor::getUInt64Field(), llvm::DISubprogram::getVariables(), llvm::DISubprogram::getVariablesNodes(), HasBranchWeights(), llvm::Loop::isAnnotatedParallel(), LLVMGetMDNodeOperands(), llvm::MachineInstr::print(), Profile(), WriteMDNode(), and llvm::WriteMDNodeComment().
| MDNode * MDNode::getTemporary | ( | LLVMContext & | Context, |
| ArrayRef< Value * > | Vals | ||
| ) | [static] |
getTemporary - Return a temporary MDNode, for use in constructing cyclic MDNode structures. A temporary MDNode is not uniqued, may be RAUW'd, and must be manually deleted with deleteTemporary.
Definition at line 280 of file Metadata.cpp.
References llvm::LeakDetector::addGarbageObject(), llvm::Value::getSubclassDataFromValue(), llvm::LibFunc::malloc, MDNodeOperand, and llvm::ArrayRef< T >::size().
Referenced by llvm::MDBuilder::createAnonymousTBAARoot(), llvm::DIBuilder::createCompileUnit(), llvm::DIBuilder::createForwardDecl(), llvm::DIBuilder::createFunction(), llvm::DIBuilder::createMethod(), llvm::BitcodeReaderMDValueList::getValueFwdRef(), and llvm::MapValue().
| MDNode * MDNode::getWhenValsUnresolved | ( | LLVMContext & | Context, |
| ArrayRef< Value * > | Vals, | ||
| bool | isFunctionLocal | ||
| ) | [static] |
Definition at line 270 of file Metadata.cpp.
| bool llvm::MDNode::isFunctionLocal | ( | ) | const [inline] |
isFunctionLocal - Return whether MDNode is local to a function.
Definition at line 148 of file Metadata.h.
References llvm::Value::getSubclassDataFromValue().
Referenced by llvm::NamedMDNode::addOperand(), assertLocalFunction(), getFunction(), llvm::ValueEnumerator::incorporateFunction(), and WriteMDNode().
| void MDNode::Profile | ( | FoldingSetNodeID & | ID | ) | const |
Profile - calculate a unique identifier for this MDNode to collapse duplicates
Definition at line 310 of file Metadata.cpp.
References llvm::FoldingSetNodeID::AddPointer(), getNumOperands(), and getOperand().
Referenced by llvm::FoldingSetTrait< MDNode >::Equals().
replaceOperandWith - Replace a specific operand.
Definition at line 106 of file Metadata.cpp.
References getOperandPtr().
Referenced by llvm::MDBuilder::createAnonymousTBAARoot(), and llvm::DIDescriptor::replaceFunctionField().
friend struct FoldingSetTrait< MDNode > [friend] |
Definition at line 77 of file Metadata.h.
friend class LLVMContextImpl [friend] |
Definition at line 76 of file Metadata.h.
friend class MDNodeOperand [friend] |
Definition at line 75 of file Metadata.h.
Referenced by getTemporary().