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

Shared implementation of use-lists for replaceable metadata. More...

#include <Metadata.h>

Inheritance diagram for llvm::ReplaceableMetadataImpl:
[legend]

Public Types

typedef MetadataTracking::OwnerTy OwnerTy
 

Public Member Functions

 ReplaceableMetadataImpl (LLVMContext &Context)
 
 ~ReplaceableMetadataImpl ()
 
LLVMContextgetContext () const
 
void replaceAllUsesWith (Metadata *MD)
 Replace all uses of this with MD. More...
 
void resolveAllUses (bool ResolveUsers=true)
 Resolve all uses of this. More...
 

Friends

class MetadataTracking
 

Detailed Description

Shared implementation of use-lists for replaceable metadata.

Most metadata cannot be RAUW'ed. This is a shared implementation of use-lists and associated API for the two that support it (ValueAsMetadata and TempMDNode).

Definition at line 264 of file Metadata.h.

Member Typedef Documentation

Definition at line 268 of file Metadata.h.

Constructor & Destructor Documentation

llvm::ReplaceableMetadataImpl::ReplaceableMetadataImpl ( LLVMContext Context)
inline

Definition at line 276 of file Metadata.h.

llvm::ReplaceableMetadataImpl::~ReplaceableMetadataImpl ( )
inline

Definition at line 279 of file Metadata.h.

References assert().

Member Function Documentation

LLVMContext& llvm::ReplaceableMetadataImpl::getContext ( ) const
inline

Definition at line 283 of file Metadata.h.

References Context.

Referenced by llvm::ContextAndReplaceableUses::getContext().

void ReplaceableMetadataImpl::replaceAllUsesWith ( Metadata MD)

Replace all uses of this with MD.

Replace all uses of this with MD, which is allowed to be null.

Definition at line 201 of file Metadata.cpp.

References assert(), llvm::PointerUnion< PT1, PT2 >::get(), llvm::Metadata::getMetadataID(), llvm::PointerUnion< PT1, PT2 >::is(), L, llvm_unreachable, and llvm::MetadataTracking::track().

Referenced by llvm::ValueAsMetadata::replaceAllUsesWith().

void ReplaceableMetadataImpl::resolveAllUses ( bool  ResolveUsers = true)

Resolve all uses of this.

Resolve all uses of this, turning off RAUW permanently. If ResolveUsers, call MDNode::resolve() on any users whose last operand is resolved.

Definition at line 249 of file Metadata.cpp.

References llvm::dyn_cast(), and L.

Friends And Related Function Documentation

friend class MetadataTracking
friend

Definition at line 265 of file Metadata.h.


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