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

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

#include "llvm/IR/Metadata.h"

Inheritance diagram for llvm::ReplaceableMetadataImpl:
Inheritance graph

Public Types

using OwnerTy = MetadataTracking::OwnerTy

Public Member Functions

 ReplaceableMetadataImpl (LLVMContext &Context)
 ~ReplaceableMetadataImpl ()
LLVMContextgetContext () const
void replaceAllUsesWith (Metadata *MD)
 Replace all uses of this with MD. More...
SmallVector< Metadata * > getAllArgListUsers ()
 Returns the list of all DIArgList users of this. More...
void resolveAllUses (bool ResolveUsers=true)
 Resolve all uses of this. More...


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 281 of file Metadata.h.

Member Typedef Documentation

◆ OwnerTy

Definition at line 285 of file Metadata.h.

Constructor & Destructor Documentation

◆ ReplaceableMetadataImpl()

llvm::ReplaceableMetadataImpl::ReplaceableMetadataImpl ( LLVMContext Context)

Definition at line 293 of file Metadata.h.

◆ ~ReplaceableMetadataImpl()

llvm::ReplaceableMetadataImpl::~ReplaceableMetadataImpl ( )

Member Function Documentation

◆ getAllArgListUsers()

SmallVector< Metadata * > ReplaceableMetadataImpl::getAllArgListUsers ( )

◆ getContext()

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

Definition at line 299 of file Metadata.h.

References Context.

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

◆ replaceAllUsesWith()

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 252 of file Metadata.cpp.

References assert(), llvm::PointerUnion< PTs >::get(), llvm::Metadata::getMetadataID(), llvm::PointerUnion< PTs >::is(), llvm_unreachable, llvm::Ref, llvm::sort(), llvm::MetadataTracking::track(), and Uses.

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

◆ resolveAllUses()

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 300 of file Metadata.cpp.

References llvm::sort(), and Uses.

Friends And Related Function Documentation

◆ MetadataTracking

friend class MetadataTracking

Definition at line 282 of file Metadata.h.

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