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:
- include/llvm/IR/MemoryModelRelaxationAnnotations.h
- lib/IR/MemoryModelRelaxationAnnotations.cpp