13#ifndef CLANG_CIR_DIALECT_IR_CIROPSENUMS_H
14#define CLANG_CIR_DIALECT_IR_CIROPSENUMS_H
16#include "mlir/IR/BuiltinAttributes.h"
17#include "clang/CIR/Dialect/IR/CIROpsEnums.h.inc"
22 return linkage == GlobalLinkageKind::ExternalLinkage;
25 return linkage == GlobalLinkageKind::AvailableExternallyLinkage;
28 return linkage == GlobalLinkageKind::LinkOnceAnyLinkage;
31 return linkage == GlobalLinkageKind::LinkOnceODRLinkage;
37 return linkage == GlobalLinkageKind::WeakAnyLinkage;
40 return linkage == GlobalLinkageKind::WeakODRLinkage;
46 return linkage == GlobalLinkageKind::InternalLinkage;
49 return linkage == GlobalLinkageKind::PrivateLinkage;
55 return linkage == GlobalLinkageKind::ExternalWeakLinkage;
58 return linkage == GlobalLinkageKind::CommonLinkage;
60LLVM_ATTRIBUTE_UNUSED
static bool
68LLVM_ATTRIBUTE_UNUSED
static bool
71 case GlobalLinkageKind::WeakAnyLinkage:
72 case GlobalLinkageKind::LinkOnceAnyLinkage:
73 case GlobalLinkageKind::CommonLinkage:
74 case GlobalLinkageKind::ExternalWeakLinkage:
77 case GlobalLinkageKind::AvailableExternallyLinkage:
78 case GlobalLinkageKind::LinkOnceODRLinkage:
79 case GlobalLinkageKind::WeakODRLinkage:
82 case GlobalLinkageKind::ExternalLinkage:
83 case GlobalLinkageKind::InternalLinkage:
84 case GlobalLinkageKind::PrivateLinkage:
87 llvm_unreachable(
"Fully covered switch above!");
92LLVM_ATTRIBUTE_UNUSED
static bool
103 return linkage == GlobalLinkageKind::WeakAnyLinkage ||
104 linkage == GlobalLinkageKind::WeakODRLinkage ||
105 linkage == GlobalLinkageKind::LinkOnceAnyLinkage ||
106 linkage == GlobalLinkageKind::LinkOnceODRLinkage ||
107 linkage == GlobalLinkageKind::CommonLinkage ||
108 linkage == GlobalLinkageKind::ExternalWeakLinkage;
124 return static_cast<Int
>(cir::MemOrder::Relaxed) <= value &&
125 value <=
static_cast<Int
>(cir::MemOrder::SequentiallyConsistent);
static bool isLocalLinkage(GlobalLinkageKind linkage)
static LLVM_ATTRIBUTE_UNUSED bool isDiscardableIfUnused(GlobalLinkageKind linkage)
Whether the definition of this global may be discarded if it is not used in its compilation unit.
bool operator<=(cir::MemOrder, cir::MemOrder)=delete
static bool isAvailableExternallyLinkage(GlobalLinkageKind linkage)
static bool isLinkOnceODRLinkage(GlobalLinkageKind linkage)
bool isValidCIRAtomicOrderingCABI(Int value)
static LLVM_ATTRIBUTE_UNUSED bool isValidDeclarationLinkage(GlobalLinkageKind linkage)
static bool isWeakODRLinkage(GlobalLinkageKind linkage)
static bool isLinkOnceAnyLinkage(GlobalLinkageKind linkage)
static LLVM_ATTRIBUTE_UNUSED bool isValidLinkage(GlobalLinkageKind gl)
static bool isExternalLinkage(GlobalLinkageKind linkage)
static bool isExternalWeakLinkage(GlobalLinkageKind linkage)
static bool isLinkOnceLinkage(GlobalLinkageKind linkage)
static bool isWeakLinkage(GlobalLinkageKind linkage)
static LLVM_ATTRIBUTE_UNUSED bool isInterposableLinkage(GlobalLinkageKind linkage)
Whether the definition of this global may be replaced by something non-equivalent at link time.
static bool isWeakAnyLinkage(GlobalLinkageKind linkage)
bool operator<(cir::MemOrder, cir::MemOrder)=delete
static LLVM_ATTRIBUTE_UNUSED bool isWeakForLinker(GlobalLinkageKind linkage)
Whether the definition of this global may be replaced at link time.
static LLVM_ATTRIBUTE_UNUSED bool isCommonLinkage(GlobalLinkageKind linkage)
static bool isInternalLinkage(GlobalLinkageKind linkage)
bool operator>(cir::MemOrder, cir::MemOrder)=delete
bool operator>=(cir::MemOrder, cir::MemOrder)=delete
static bool isPrivateLinkage(GlobalLinkageKind linkage)