LLVM  4.0.0
Classes | Public Types | Public Member Functions | Friends | List of all members
llvm::NamedMDNode Class Reference

A tuple of MDNodes. More...

#include <Metadata.h>

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

Public Types

typedef op_iterator_impl
< MDNode *, MDNode
op_iterator
 
typedef op_iterator_impl
< const MDNode *, MDNode
const_op_iterator
 

Public Member Functions

 NamedMDNode (const NamedMDNode &)=delete
 
 ~NamedMDNode ()
 
void eraseFromParent ()
 Drop all references and remove the node from parent module. More...
 
void dropAllReferences ()
 Remove all uses and clear node vector. More...
 
void clearOperands ()
 Drop all references to this node's operands. More...
 
ModulegetParent ()
 Get the module that holds this named metadata collection. More...
 
const ModulegetParent () const
 
MDNodegetOperand (unsigned i) const
 
unsigned getNumOperands () const
 
void addOperand (MDNode *M)
 
void setOperand (unsigned I, MDNode *New)
 
StringRef getName () const
 
void print (raw_ostream &ROS, bool IsForDebug=false) const
 
void print (raw_ostream &ROS, ModuleSlotTracker &MST, bool IsForDebug=false) const
 
void dump () const
 
op_iterator op_begin ()
 
op_iterator op_end ()
 
const_op_iterator op_begin () const
 
const_op_iterator op_end () const
 
iterator_range< op_iteratoroperands ()
 
iterator_range< const_op_iteratoroperands () const
 
- Public Member Functions inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< NamedMDNode, Options...>::type >
self_iterator getIterator ()
 
const_self_iterator getIterator () const
 
reverse_self_iterator getReverseIterator ()
 
const_reverse_self_iterator getReverseIterator () const
 
bool isSentinel () const
 Check whether this is the sentinel node. More...
 

Friends

class LLVMContextImpl
 
class Module
 

Additional Inherited Members

- Protected Types inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< NamedMDNode, Options...>::type >
typedef ilist_iterator
< ilist_detail::compute_node_options
< NamedMDNode, Options...>
::type, false, false
self_iterator
 
typedef ilist_iterator
< ilist_detail::compute_node_options
< NamedMDNode, Options...>
::type, false, true
const_self_iterator
 
typedef ilist_iterator
< ilist_detail::compute_node_options
< NamedMDNode, Options...>
::type, true, false
reverse_self_iterator
 
typedef ilist_iterator
< ilist_detail::compute_node_options
< NamedMDNode, Options...>
::type, true, true
const_reverse_self_iterator
 
- Protected Member Functions inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< NamedMDNode, Options...>::type >
 ilist_node_impl ()=default
 

Detailed Description

A tuple of MDNodes.

Despite its name, a NamedMDNode isn't itself an MDNode. NamedMDNodes belong to modules, have names, and contain lists of MDNodes.

TODO: Inherit from Metadata.

Definition at line 1282 of file Metadata.h.

Member Typedef Documentation

Definition at line 1368 of file Metadata.h.

typedef op_iterator_impl<MDNode *, MDNode> llvm::NamedMDNode::op_iterator

Definition at line 1364 of file Metadata.h.

Constructor & Destructor Documentation

llvm::NamedMDNode::NamedMDNode ( const NamedMDNode )
delete
NamedMDNode::~NamedMDNode ( )

Definition at line 1033 of file Metadata.cpp.

References dropAllReferences(), and getNMDOps().

Member Function Documentation

void NamedMDNode::addOperand ( MDNode M)
void NamedMDNode::clearOperands ( )

Drop all references to this node's operands.

Definition at line 1057 of file Metadata.cpp.

References getNMDOps().

Referenced by dropAllReferences().

void llvm::NamedMDNode::dropAllReferences ( )
inline

Remove all uses and clear node vector.

Definition at line 1343 of file Metadata.h.

References clearOperands().

Referenced by ~NamedMDNode().

LLVM_DUMP_METHOD void NamedMDNode::dump ( ) const

Definition at line 3559 of file AsmWriter.cpp.

References llvm::dbgs(), and print().

void NamedMDNode::eraseFromParent ( )

Drop all references and remove the node from parent module.

Definition at line 1055 of file Metadata.cpp.

References llvm::Module::eraseNamedMetadata(), and getParent().

Referenced by llvm::StripDebugInfo().

StringRef NamedMDNode::getName ( ) const
unsigned NamedMDNode::getNumOperands ( ) const
MDNode * NamedMDNode::getOperand ( unsigned  i) const
Module* llvm::NamedMDNode::getParent ( )
inline

Get the module that holds this named metadata collection.

Definition at line 1348 of file Metadata.h.

Referenced by eraseFromParent(), and print().

const Module* llvm::NamedMDNode::getParent ( ) const
inline

Definition at line 1349 of file Metadata.h.

op_iterator llvm::NamedMDNode::op_begin ( )
inline

Definition at line 1365 of file Metadata.h.

Referenced by operands().

const_op_iterator llvm::NamedMDNode::op_begin ( ) const
inline

Definition at line 1369 of file Metadata.h.

op_iterator llvm::NamedMDNode::op_end ( )
inline

Definition at line 1366 of file Metadata.h.

References getNumOperands().

Referenced by operands().

const_op_iterator llvm::NamedMDNode::op_end ( ) const
inline

Definition at line 1370 of file Metadata.h.

References getNumOperands().

iterator_range<op_iterator> llvm::NamedMDNode::operands ( )
inline

Definition at line 1372 of file Metadata.h.

References llvm::make_range(), op_begin(), and op_end().

Referenced by llvm::Module::getModuleFlagsMetadata().

iterator_range<const_op_iterator> llvm::NamedMDNode::operands ( ) const
inline

Definition at line 1375 of file Metadata.h.

References llvm::make_range(), op_begin(), and op_end().

void NamedMDNode::print ( raw_ostream ROS,
bool  IsForDebug = false 
) const

Definition at line 3320 of file AsmWriter.cpp.

References getParent().

Referenced by dump().

void NamedMDNode::print ( raw_ostream ROS,
ModuleSlotTracker MST,
bool  IsForDebug = false 
) const
void NamedMDNode::setOperand ( unsigned  I,
MDNode New 
)

Definition at line 1050 of file Metadata.cpp.

References assert(), getNMDOps(), getNumOperands(), and I.

Friends And Related Function Documentation

friend class LLVMContextImpl
friend

Definition at line 1283 of file Metadata.h.

friend class Module
friend

Definition at line 1284 of file Metadata.h.


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