LLVM: llvm::MMRAMetadata Class Reference (original) (raw)

Helper class to manipulate !mmra metadata nodes. More...

#include "[llvm/IR/MemoryModelRelaxationAnnotations.h](MemoryModelRelaxationAnnotations%5F8h%5Fsource.html)"

Public Member Functions
LLVM_ABI void print (raw_ostream &OS) const
LLVM_ABI void dump () const
operator bool () const
bool operator== (const MMRAMetadata &Other) const
bool operator!= (const MMRAMetadata &Other) const
Constructors
MMRAMetadata ()=default
LLVM_ABI MMRAMetadata (const Instruction &I)
LLVM_ABI MMRAMetadata (MDNode *MD)
Content Queries
LLVM_ABI bool hasTag (StringRef Prefix, StringRef Suffix) const
LLVM_ABI bool hasTagWithPrefix (StringRef Prefix) const
LLVM_ABI const_iterator begin () const
LLVM_ABI const_iterator end () const
LLVM_ABI bool empty () const
LLVM_ABI unsigned size () const
Static Public Member Functions
Metadata Helpers & Builders
static LLVM_ABI MDNode * combine (LLVMContext &Ctx, const MMRAMetadata &A, const MMRAMetadata &B)
Combines A and B according to MMRA semantics.
static LLVM_ABI MDTuple * getTagMD (LLVMContext &Ctx, StringRef Prefix, StringRef Suffix)
Creates !mmra metadata for a single tag.
static MDTuple * getTagMD (LLVMContext &Ctx, const TagT &T)
static LLVM_ABI MDTuple * getMD (LLVMContext &Ctx, ArrayRef< TagT > Tags)
Creates !mmra metadata from Tags.
static LLVM_ABI bool isTagMD (const Metadata *MD)

Helper class to manipulate !mmra metadata nodes.

This can be visualized as a set of "tags", with each tag representing a particular property of an instruction, as explained in the MemoryModelRelaxationAnnotations docs.

This class (and the optimizer in general) does not reason about the exact nature of the tags and the properties they imply. It just sees the metadata as a collection of tags, which are a prefix/suffix pair of strings.

Definition at line 48 of file MemoryModelRelaxationAnnotations.h.

const_iterator

SetT

TagT

llvm::MMRAMetadata::MMRAMetadata ( ) default

References A(), B(), I, LLVM_ABI, and MMRAMetadata().

Referenced by checkCompatibility(), combine(), isCompatibleWith(), MMRAMetadata(), MMRAMetadata(), operator!=(), and operator==().

MMRAMetadata() [2/3]

MMRAMetadata() [3/3]

MMRAMetadata::MMRAMetadata ( MDNode * MD )

begin()

MMRAMetadata::const_iterator MMRAMetadata::begin ( ) const

checkCompatibility()

combine()

dump()

empty()

bool MMRAMetadata::empty ( ) const

end()

MMRAMetadata::const_iterator MMRAMetadata::end ( ) const

getMD()

getTagMD() [1/2]

getTagMD() [2/2]

hasTag()

hasTagWithPrefix()

isCompatibleWith()

isTagMD()

operator bool()

llvm::MMRAMetadata::operator bool ( ) const inline

operator!=()

operator==()

print()

size()


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