Lines Matching refs:Metadata

1 //===- Metadata.cpp - Implement Metadata classes --------------------------===//
9 // This file implements the Metadata classes.
13 #include "llvm/IR/Metadata.h"
60 MetadataAsValue::MetadataAsValue(Type *Ty, Metadata *MD)
81 static Metadata *canonicalizeMetadataForValue(LLVMContext &Context,
82 Metadata *MD) {
103 MetadataAsValue *MetadataAsValue::get(LLVMContext &Context, Metadata *MD) {
112 Metadata *MD) {
118 void MetadataAsValue::handleChangedMetadata(Metadata *MD) {
158 void DebugValueUser::handleChangedValue(void *Old, Metadata *New) {
161 auto OldMD = static_cast<Metadata **>(Old);
174 Metadata *&MD = DebugValues[Idx];
180 for (Metadata *&MD : DebugValues)
187 Metadata *&MD = DebugValues[Idx];
193 for (Metadata *&MD : DebugValues)
206 bool MetadataTracking::track(void *Ref, Metadata &MD, OwnerTy Owner) {
208 assert((Owner || *static_cast<Metadata **>(Ref) == &MD) &&
217 PH->Use = static_cast<Metadata **>(Ref);
223 void MetadataTracking::untrack(void *Ref, Metadata &MD) {
231 bool MetadataTracking::retrack(void *Ref, Metadata &MD, void *New) {
246 bool MetadataTracking::isReplaceable(const Metadata &MD) {
250 SmallVector<Metadata *> ReplaceableMetadataImpl::getAllArgListUsers() {
256 if (!isa<Metadata *>(Owner))
258 Metadata *OwnerMD = cast<Metadata *>(Owner);
259 if (OwnerMD->getMetadataID() == Metadata::DIArgListKind)
265 SmallVector<Metadata *> MDUsers;
267 MDUsers.push_back(cast<Metadata *>(UserWithID->first));
314 const Metadata &MD) {
325 assert((OwnerAndIndex.first || *static_cast<Metadata **>(Ref) == &MD) &&
327 assert((OwnerAndIndex.first || *static_cast<Metadata **>(New) == &MD) &&
355 if (!isa<Metadata *>(Owner))
357 auto *OwnerMD = dyn_cast_if_present<MDNode>(cast<Metadata *>(Owner));
367 void ReplaceableMetadataImpl::replaceAllUsesWith(Metadata *MD) {
386 Metadata *&Ref = *static_cast<Metadata **>(Pair.first);
405 // There's a Metadata owner -- dispatch.
406 Metadata *OwnerMD = cast<Metadata *>(Owner);
409 case Metadata::CLASS##Kind: \
412 #include "llvm/IR/Metadata.def"
440 if (!isa<Metadata *>(Owner))
444 auto *OwnerMD = dyn_cast_if_present<MDNode>(cast<Metadata *>(Owner));
456 ReplaceableMetadataImpl *ReplaceableMetadataImpl::getOrCreate(Metadata &MD) {
467 ReplaceableMetadataImpl *ReplaceableMetadataImpl::getIfExists(Metadata &MD) {
478 bool ReplaceableMetadataImpl::isReplaceable(const Metadata &MD) {
631 #include "llvm/IR/Metadata.def"
651 ArrayRef<Metadata *> Ops1, ArrayRef<Metadata *> Ops2)
652 : Metadata(ID, Storage), Context(Context) {
654 for (Metadata *MD : Ops1)
656 for (Metadata *MD : Ops2)
674 #include "llvm/IR/Metadata.def"
752 static bool isOperandUnresolved(Metadata *Op) {
813 void MDNode::resolveAfterOperandChange(Metadata *Old, Metadata *New) {
874 #include "llvm/IR/Metadata.def"
916 void MDNode::handleChangedOperand(void *Ref, Metadata *New) {
929 Metadata *Old = getOperand(Op);
974 #include "llvm/IR/Metadata.def"
1014 #include "llvm/IR/Metadata.def"
1026 #include "llvm/IR/Metadata.def"
1030 MDTuple *MDTuple::getImpl(LLVMContext &Context, ArrayRef<Metadata *> MDs,
1071 #include "llvm/IR/Metadata.def"
1077 void MDNode::replaceOperandWith(unsigned I, Metadata *New) {
1089 void MDNode::setOperand(unsigned I, Metadata *New) {
1101 ArrayRef<Metadata *> Ops) {
1120 SmallSetVector<Metadata *, 4> MDs(A->op_begin(), A->op_end());
1132 SmallSetVector<Metadata *, 4> MDs(A->op_begin(), A->op_end());
1133 SmallPtrSet<Metadata *, 4> BSet(B->op_begin(), B->op_end());
1134 MDs.remove_if([&](Metadata *MD) { return !BSet.count(MD); });
1149 SmallSetVector<Metadata *, 4> MDs;
1350 SmallVector<Metadata *, 4> MDs;
1383 SmallVector<Metadata *> MDs;
1445 // Instruction Metadata method implementations.
1703 SmallVector<Metadata *, 4> Names;
1723 SmallVector<Metadata *> MDAnnotationStrings;
1733 SmallVector<Metadata *, 4> Names;
1807 Metadata *TypeId = MD.second->getOperand(1);
1840 void GlobalObject::addTypeMetadata(unsigned Offset, Metadata *TypeID) {