summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2011-12-20 19:29:36 +0000
committerDevang Patel <dpatel@apple.com>2011-12-20 19:29:36 +0000
commit45ca049f1f221f5fc1a118f6aab83ac290cb8211 (patch)
treed7ff7da0f0abbc6c8c18a17a3135c1e6860807b1
parent95fad1c6034cdf8010428e61b71cd196ee1698ad (diff)
downloadllvm-45ca049f1f221f5fc1a118f6aab83ac290cb8211.tar.gz
llvm-45ca049f1f221f5fc1a118f6aab83ac290cb8211.tar.bz2
llvm-45ca049f1f221f5fc1a118f6aab83ac290cb8211.tar.xz
Add support to add named metadata operand.
Patch by Andrew Wilkins! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146984 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm-c/Core.h2
-rw-r--r--lib/VMCore/Core.cpp11
2 files changed, 13 insertions, 0 deletions
diff --git a/include/llvm-c/Core.h b/include/llvm-c/Core.h
index ed7d46932c..63d6fd41e2 100644
--- a/include/llvm-c/Core.h
+++ b/include/llvm-c/Core.h
@@ -567,6 +567,8 @@ LLVMValueRef LLVMMDNode(LLVMValueRef *Vals, unsigned Count);
const char *LLVMGetMDString(LLVMValueRef V, unsigned* Len);
unsigned LLVMGetNamedMetadataNumOperands(LLVMModuleRef M, const char* name);
void LLVMGetNamedMetadataOperands(LLVMModuleRef M, const char* name, LLVMValueRef *Dest);
+void LLVMAddNamedMetadataOperand(LLVMModuleRef M, const char* name,
+ LLVMValueRef Val);
/* Operations on scalar constants */
LLVMValueRef LLVMConstInt(LLVMTypeRef IntTy, unsigned long long N,
diff --git a/lib/VMCore/Core.cpp b/lib/VMCore/Core.cpp
index 612d5fa2b9..644ee03b0b 100644
--- a/lib/VMCore/Core.cpp
+++ b/lib/VMCore/Core.cpp
@@ -566,6 +566,17 @@ void LLVMGetNamedMetadataOperands(LLVMModuleRef M, const char* name, LLVMValueRe
Dest[i] = wrap(N->getOperand(i));
}
+void LLVMAddNamedMetadataOperand(LLVMModuleRef M, const char* name,
+ LLVMValueRef Val)
+{
+ NamedMDNode *N = unwrap(M)->getOrInsertNamedMetadata(name);
+ if (!N)
+ return;
+ MDNode *Op = Val ? unwrap<MDNode>(Val) : NULL;
+ if (Op)
+ N->addOperand(Op);
+}
+
/*--.. Operations on scalar constants ......................................--*/
LLVMValueRef LLVMConstInt(LLVMTypeRef IntTy, unsigned long long N,