13#ifndef LLVM_IR_TRACKINGMDREF_H
14#define LLVM_IR_TRACKINGMDREF_H
94 assert(MD ==
X.MD &&
"Expected values to match");
117 Ref = std::move(
X.Ref);
126 T *
get()
const {
return (
T *)Ref.get(); }
127 operator T *()
const {
return get(); }
static GCMetadataPrinterRegistry::Add< ErlangGCPrinter > X("erlang", "erlang-compatible garbage collector")
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
Tracking metadata reference.
TrackingMDRef(const TrackingMDRef &X)
Metadata & operator*() const
bool operator==(const TrackingMDRef &X) const
bool hasTrivialDestructor() const
Check whether this has a trivial destructor.
TrackingMDRef(Metadata *MD)
bool operator!=(const TrackingMDRef &X) const
TrackingMDRef(TrackingMDRef &&X)
Metadata * operator->() const
TrackingMDRef & operator=(const TrackingMDRef &X)
TrackingMDRef & operator=(TrackingMDRef &&X)
TypedTrackingMDRef(T *MD)
bool operator!=(const TypedTrackingMDRef &X) const
TypedTrackingMDRef(TypedTrackingMDRef &&X)
TypedTrackingMDRef()=default
bool operator==(const TypedTrackingMDRef &X) const
TypedTrackingMDRef(const TypedTrackingMDRef &X)
TypedTrackingMDRef & operator=(const TypedTrackingMDRef &X)
TypedTrackingMDRef & operator=(TypedTrackingMDRef &&X)
bool hasTrivialDestructor() const
Check whether this has a trivial destructor.
This is an optimization pass for GlobalISel generic memory operations.
OutputIt move(R &&Range, OutputIt Out)
Provide wrappers to std::move which take ranges instead of having to pass begin/end explicitly.
Implement std::hash so that hash_code can be used in STL containers.
static SimpleType getSimplifiedValue(TrackingMDRef &MD)
static SimpleType getSimplifiedValue(TypedTrackingMDRef< T > &MD)
static SimpleType getSimplifiedValue(const TrackingMDRef &MD)
static SimpleType getSimplifiedValue(const TypedTrackingMDRef< T > &MD)
Define a template that can be specialized by smart pointers to reflect the fact that they are automat...