private:
MDTuple *uniquifyImpl();
- void eraseFromStoreImpl();
};
MDTuple *MDNode::get(LLVMContext &Context, ArrayRef<Metadata *> MDs) {
private:
MDLocation *uniquifyImpl();
- void eraseFromStoreImpl();
};
//===----------------------------------------------------------------------===//
llvm_unreachable("Invalid subclass of UniquableMDNode");
#define HANDLE_UNIQUABLE_LEAF(CLASS) \
case CLASS##Kind: \
- cast<CLASS>(this)->eraseFromStoreImpl(); \
+ getContext().pImpl->CLASS##s.erase(cast<CLASS>(this)); \
break;
#include "llvm/IR/Metadata.def"
}
return this;
}
-void MDTuple::eraseFromStoreImpl() { getContext().pImpl->MDTuples.erase(this); }
-
MDLocation::MDLocation(LLVMContext &C, StorageType Storage, unsigned Line,
unsigned Column, ArrayRef<Metadata *> MDs)
: UniquableMDNode(C, MDLocationKind, Storage, MDs) {
return this;
}
-void MDLocation::eraseFromStoreImpl() {
- getContext().pImpl->MDLocations.erase(this);
-}
-
void MDNode::deleteTemporary(MDNode *N) {
assert(N->isTemporary() && "Expected temporary node");
cast<UniquableMDNode>(N)->deleteAsSubclass();