struct AAMDNodes
Declaration
struct AAMDNodes { /* full declaration omitted */ };
Description
A collection of metadata nodes that might be associated with a memory access used by the alias-analysis infrastructure.
Declared at: llvm/include/llvm/IR/Metadata.h:652
Member Variables
- public llvm::MDNode* TBAA = nullptr
- The tag for type-based alias analysis.
- public llvm::MDNode* TBAAStruct = nullptr
- The tag for type-based alias analysis (tbaa struct).
- public llvm::MDNode* Scope = nullptr
- The tag for alias scope specification (used with noalias).
- public llvm::MDNode* NoAlias = nullptr
- The tag specifying the noalias scope.
Method Overview
- public AAMDNodes()
- public AAMDNodes(llvm::MDNode * T, llvm::MDNode * TS, llvm::MDNode * S, llvm::MDNode * N)
- public llvm::AAMDNodes concat(const llvm::AAMDNodes & Other) const
- public llvm::AAMDNodes extendTo(ssize_t Len) const
- public static llvm::MDNode * extendToTBAA(llvm::MDNode * TBAA, ssize_t len)
- public llvm::AAMDNodes intersect(const llvm::AAMDNodes & Other) const
- public llvm::AAMDNodes merge(const llvm::AAMDNodes & Other) const
- public bool operator bool() const
- public llvm::AAMDNodes shift(size_t Offset) const
- public static llvm::MDNode * shiftTBAA(llvm::MDNode * M, size_t off)
- public static llvm::MDNode * shiftTBAAStruct(llvm::MDNode * M, size_t off)
Methods
¶AAMDNodes()
AAMDNodes()
Declared at: llvm/include/llvm/IR/Metadata.h:653
¶AAMDNodes(llvm::MDNode* T,
llvm::MDNode* TS,
llvm::MDNode* S,
llvm::MDNode* N)
AAMDNodes(llvm::MDNode* T,
llvm::MDNode* TS,
llvm::MDNode* S,
llvm::MDNode* N)
Declared at: llvm/include/llvm/IR/Metadata.h:654
Parameters
- llvm::MDNode* T
- llvm::MDNode* TS
- llvm::MDNode* S
- llvm::MDNode* N
¶llvm::AAMDNodes concat(
const llvm::AAMDNodes& Other) const
llvm::AAMDNodes concat(
const llvm::AAMDNodes& Other) const
Description
Determine the best AAMDNodes after concatenating two different locations together. Different from `merge`, where different locations should overlap each other, `concat` puts non-overlapping locations together.
Declared at: llvm/include/llvm/IR/Metadata.h:738
Parameters
- const llvm::AAMDNodes& Other
¶llvm::AAMDNodes extendTo(ssize_t Len) const
llvm::AAMDNodes extendTo(ssize_t Len) const
Description
Create a new AAMDNode that describes this AAMDNode after extending it to apply to a series of bytes of length Len. A size of -1 denotes an unknown size.
Declared at: llvm/include/llvm/IR/Metadata.h:719
Parameters
- ssize_t Len
¶static llvm::MDNode* extendToTBAA(
llvm::MDNode* TBAA,
ssize_t len)
static llvm::MDNode* extendToTBAA(
llvm::MDNode* TBAA,
ssize_t len)
Declared at: llvm/include/llvm/IR/Metadata.h:688
Parameters
- llvm::MDNode* TBAA
- ssize_t len
¶llvm::AAMDNodes intersect(
const llvm::AAMDNodes& Other) const
llvm::AAMDNodes intersect(
const llvm::AAMDNodes& Other) const
Description
Given two sets of AAMDNodes that apply to the same pointer, give the best AAMDNodes that are compatible with both (i.e. a set of nodes whose allowable aliasing conclusions are a subset of those allowable by both of the inputs). However, for efficiency reasons, do not create any new MDNodes.
Declared at: llvm/include/llvm/IR/Metadata.h:695
Parameters
- const llvm::AAMDNodes& Other
¶llvm::AAMDNodes merge(
const llvm::AAMDNodes& Other) const
llvm::AAMDNodes merge(
const llvm::AAMDNodes& Other) const
Description
Given two sets of AAMDNodes applying to potentially different locations, determine the best AAMDNodes that apply to both.
Declared at: llvm/include/llvm/IR/Metadata.h:733
Parameters
- const llvm::AAMDNodes& Other
¶bool operator bool() const
bool operator bool() const
Declared at: llvm/include/llvm/IR/Metadata.h:664
¶llvm::AAMDNodes shift(size_t Offset) const
llvm::AAMDNodes shift(size_t Offset) const
Description
Create a new AAMDNode that describes this AAMDNode after applying a constant offset to the start of the pointer.
Declared at: llvm/include/llvm/IR/Metadata.h:706
Parameters
- size_t Offset
¶static llvm::MDNode* shiftTBAA(llvm::MDNode* M,
size_t off)
static llvm::MDNode* shiftTBAA(llvm::MDNode* M,
size_t off)
Declared at: llvm/include/llvm/IR/Metadata.h:681
Parameters
- llvm::MDNode* M
- size_t off
¶static llvm::MDNode* shiftTBAAStruct(
llvm::MDNode* M,
size_t off)
static llvm::MDNode* shiftTBAAStruct(
llvm::MDNode* M,
size_t off)
Declared at: llvm/include/llvm/IR/Metadata.h:684
Parameters
- llvm::MDNode* M
- size_t off