[llvm] r225690 - IR: Move creation logic to MDNodeFwdDecl, NFC
Duncan P. N. Exon Smith
dexonsmith at apple.com
Mon Jan 12 12:21:37 PST 2015
Author: dexonsmith
Date: Mon Jan 12 14:21:37 2015
New Revision: 225690
URL: http://llvm.org/viewvc/llvm-project?rev=225690&view=rev
Log:
IR: Move creation logic to MDNodeFwdDecl, NFC
Same as with `MDTuple`, factor out a `friend MDNode` by moving creation
logic to the concrete subclass.
Modified:
llvm/trunk/include/llvm/IR/Metadata.h
llvm/trunk/lib/IR/Metadata.cpp
Modified: llvm/trunk/include/llvm/IR/Metadata.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/Metadata.h?rev=225690&r1=225689&r2=225690&view=diff
==============================================================================
--- llvm/trunk/include/llvm/IR/Metadata.h (original)
+++ llvm/trunk/include/llvm/IR/Metadata.h Mon Jan 12 14:21:37 2015
@@ -813,7 +813,6 @@ MDNode *MDNode::getDistinct(LLVMContext
/// uniqued, and is suitable for forward references.
class MDNodeFwdDecl : public MDNode, ReplaceableMetadataImpl {
friend class Metadata;
- friend class MDNode;
friend class ReplaceableMetadataImpl;
MDNodeFwdDecl(LLVMContext &C, ArrayRef<Metadata *> Vals)
@@ -823,6 +822,10 @@ public:
~MDNodeFwdDecl() { dropAllReferences(); }
using MDNode::operator delete;
+ static MDNodeFwdDecl *get(LLVMContext &Context, ArrayRef<Metadata *> MDs) {
+ return new (MDs.size()) MDNodeFwdDecl(Context, MDs);
+ }
+
static bool classof(const Metadata *MD) {
return MD->getMetadataID() == MDNodeFwdDeclKind;
}
Modified: llvm/trunk/lib/IR/Metadata.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Metadata.cpp?rev=225690&r1=225689&r2=225690&view=diff
==============================================================================
--- llvm/trunk/lib/IR/Metadata.cpp (original)
+++ llvm/trunk/lib/IR/Metadata.cpp Mon Jan 12 14:21:37 2015
@@ -607,14 +607,10 @@ MDTuple *MDTuple::getDistinct(LLVMContex
MDNodeFwdDecl *MDNode::getTemporary(LLVMContext &Context,
ArrayRef<Metadata *> MDs) {
- MDNodeFwdDecl *N = new (MDs.size()) MDNodeFwdDecl(Context, MDs);
- return N;
+ return MDNodeFwdDecl::get(Context, MDs);
}
-void MDNode::deleteTemporary(MDNode *N) {
- assert(isa<MDNodeFwdDecl>(N) && "Expected forward declaration");
- delete cast<MDNodeFwdDecl>(N);
-}
+void MDNode::deleteTemporary(MDNode *N) { delete cast<MDNodeFwdDecl>(N); }
void UniquableMDNode::storeDistinctInContext() {
assert(!IsDistinctInContext && "Expected newly distinct metadata");
More information about the llvm-commits
mailing list