Move two Value Profiler data structs to InstrProfData.inc (NFC)
[oota-llvm.git] / lib / IR / MetadataImpl.h
index 3d6ed3a0dd58465c6d97e7fa7ce331222e89866b..b9137460bd203142f219a2e32c7cf1ca03aa6b4f 100644 (file)
@@ -15,6 +15,7 @@
 #define LLVM_IR_METADATAIMPL_H
 
 #include "llvm/ADT/DenseSet.h"
+#include "llvm/IR/Metadata.h"
 
 namespace llvm {
 
@@ -25,6 +26,19 @@ static T *getUniqued(DenseSet<T *, InfoT> &Store,
   return I == Store.end() ? nullptr : *I;
 }
 
+template <class T> T *MDNode::storeImpl(T *N, StorageType Storage) {
+  switch (Storage) {
+  case Uniqued:
+    llvm_unreachable("Cannot unique without a uniquing-store");
+  case Distinct:
+    N->storeDistinctInContext();
+    break;
+  case Temporary:
+    break;
+  }
+  return N;
+}
+
 template <class T, class StoreT>
 T *MDNode::storeImpl(T *N, StorageType Storage, StoreT &Store) {
   switch (Storage) {