LLVM API Documentation

Public Member Functions | Static Public Member Functions | Friends
llvm::MDNode Class Reference

MDNode - a tuple of other values. More...

#include <Metadata.h>

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

List of all members.

Public Member Functions

void replaceOperandWith (unsigned i, Value *NewVal)
 replaceOperandWith - Replace a specific operand.
ValuegetOperand (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 FunctiongetFunction () const
void Profile (FoldingSetNodeID &ID) const

Static Public Member Functions

static MDNodeget (LLVMContext &Context, ArrayRef< Value * > Vals)
static MDNodegetWhenValsUnresolved (LLVMContext &Context, ArrayRef< Value * > Vals, bool isFunctionLocal)
static MDNodegetIfExists (LLVMContext &Context, ArrayRef< Value * > Vals)
static MDNodegetTemporary (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 MDNodegetMostGenericTBAA (MDNode *A, MDNode *B)
 Methods for metadata merging.
static MDNodegetMostGenericFPMath (MDNode *A, MDNode *B)
static MDNodegetMostGenericRange (MDNode *A, MDNode *B)

Friends

class MDNodeOperand
class LLVMContextImpl
struct FoldingSetTrait< MDNode >

Detailed Description

MDNode - a tuple of other values.

Definition at line 72 of file Metadata.h.


Member Function Documentation

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

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]
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
MDNode * MDNode::getIfExists ( LLVMContext Context,
ArrayRef< Value * >  Vals 
) [static]

Definition at line 276 of file Metadata.cpp.

Referenced by llvm::FindAllocaDbgDeclare().

MDNode * MDNode::getMostGenericFPMath ( MDNode A,
MDNode B 
) [static]
MDNode * MDNode::getMostGenericRange ( MDNode A,
MDNode B 
) [static]
MDNode * MDNode::getMostGenericTBAA ( MDNode A,
MDNode B 
) [static]
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().

Value * MDNode::getOperand ( unsigned  i) const

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]
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().

void MDNode::replaceOperandWith ( unsigned  i,
Value NewVal 
)

replaceOperandWith - Replace a specific operand.

Definition at line 106 of file Metadata.cpp.

References getOperandPtr().

Referenced by llvm::MDBuilder::createAnonymousTBAARoot(), and llvm::DIDescriptor::replaceFunctionField().


Friends And Related Function Documentation

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().


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