summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/lib/IR/MetadataTracking.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/llvm/lib/IR/MetadataTracking.cpp')
-rw-r--r--contrib/llvm/lib/IR/MetadataTracking.cpp55
1 files changed, 0 insertions, 55 deletions
diff --git a/contrib/llvm/lib/IR/MetadataTracking.cpp b/contrib/llvm/lib/IR/MetadataTracking.cpp
deleted file mode 100644
index 47f0b93..0000000
--- a/contrib/llvm/lib/IR/MetadataTracking.cpp
+++ /dev/null
@@ -1,55 +0,0 @@
-//===- MetadataTracking.cpp - Implement metadata tracking -----------------===//
-//
-// The LLVM Compiler Infrastructure
-//
-// This file is distributed under the University of Illinois Open Source
-// License. See LICENSE.TXT for details.
-//
-//===----------------------------------------------------------------------===//
-//
-// This file implements Metadata tracking.
-//
-//===----------------------------------------------------------------------===//
-
-#include "llvm/IR/MetadataTracking.h"
-#include "llvm/IR/Metadata.h"
-
-using namespace llvm;
-
-ReplaceableMetadataImpl *ReplaceableMetadataImpl::get(Metadata &MD) {
- if (auto *N = dyn_cast<MDNode>(&MD))
- return N->Context.getReplaceableUses();
- return dyn_cast<ValueAsMetadata>(&MD);
-}
-
-bool MetadataTracking::track(void *Ref, Metadata &MD, OwnerTy Owner) {
- assert(Ref && "Expected live reference");
- assert((Owner || *static_cast<Metadata **>(Ref) == &MD) &&
- "Reference without owner must be direct");
- if (auto *R = ReplaceableMetadataImpl::get(MD)) {
- R->addRef(Ref, Owner);
- return true;
- }
- return false;
-}
-
-void MetadataTracking::untrack(void *Ref, Metadata &MD) {
- assert(Ref && "Expected live reference");
- if (auto *R = ReplaceableMetadataImpl::get(MD))
- R->dropRef(Ref);
-}
-
-bool MetadataTracking::retrack(void *Ref, Metadata &MD, void *New) {
- assert(Ref && "Expected live reference");
- assert(New && "Expected live reference");
- assert(Ref != New && "Expected change");
- if (auto *R = ReplaceableMetadataImpl::get(MD)) {
- R->moveRef(Ref, New, MD);
- return true;
- }
- return false;
-}
-
-bool MetadataTracking::isReplaceable(const Metadata &MD) {
- return ReplaceableMetadataImpl::get(const_cast<Metadata &>(MD));
-}
OpenPOWER on IntegriCloud