30  assert(Tuple && 
"Invalid MMRA structure");
 
   32  const auto HandleTagMD = [
this](
MDNode *TagMD) {
 
 
   51    return Tuple->getNumOperands() == 2 &&
 
 
   73  for (
const auto &
Tag : Tags)
 
 
   89  for (
const auto &[
P, S] : 
A) {
 
   90    if (
B.hasTagWithPrefix(
P))
 
   93  for (
const auto &[
P, S] : 
B) {
 
   94    if (
A.hasTagWithPrefix(
P))
 
 
  102  return Tags.count({Prefix, Suffix});
 
 
  112  for (
const auto &[
P, S] : Tags)
 
  113    PrefixStatuses[
P] |= (
Other.hasTag(
P, S) || !
Other.hasTagWithPrefix(
P));
 
  114  for (
const auto &[
P, S] : 
Other)
 
  117  for (
auto &[Prefix, 
Status] : PrefixStatuses) {
 
 
  126  for (
const auto &[
P, S] : Tags)
 
 
  145  for (
const auto &[
P, S] : Tags) {
 
 
  161    return C->mayReadOrWriteMemory() ||
 
  162           !
C->getMemoryEffects().doesNotAccessMemory();
 
 
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
 
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
 
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
 
#define LLVM_DUMP_METHOD
Mark debug helper function definitions like dump() that should not be stripped from debug builds.
 
static bool isReadWriteMemCall(const Instruction &I)
 
This file provides utility for Memory Model Relaxation Annotations (MMRAs).
 
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
 
This is an important class for using LLVM in a threaded context.
 
Tracking metadata reference owned by Metadata.
 
static LLVM_ABI MDString * get(LLVMContext &Context, StringRef Str)
 
static MDTuple * get(LLVMContext &Context, ArrayRef< Metadata * > MDs)
 
void push_back(const T &Elt)
 
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
 
StringMap - This is an unconventional map that is specialized for handling keys that are "strings",...
 
StringRef - Represent a constant reference to a string, i.e.
 
This class implements an extremely fast bulk output stream that can only output to a stream.
 
@ C
The default llvm calling convention, compatible with C.
 
This is an optimization pass for GlobalISel generic memory operations.
 
LLVM_ABI bool canInstructionHaveMMRAs(const Instruction &I)
 
decltype(auto) dyn_cast(const From &Val)
dyn_cast<X> - Return the argument parameter cast to the specified type.
 
LLVM_ABI raw_ostream & dbgs()
dbgs() - This returns a reference to a raw_ostream for debugging messages.
 
bool isa(const From &Val)
isa<X> - Return true if the parameter to the template is an instance of one of the template type argu...
 
DWARFExpression::Operation Op
 
decltype(auto) cast(const From &Val)
cast<X> - Return the argument parameter cast to the specified type.