Go bindings: introduce Value.ConstantAsMetadata.
authorPeter Collingbourne <peter@pcc.me.uk>
Sat, 13 Dec 2014 02:25:57 +0000 (02:25 +0000)
committerPeter Collingbourne <peter@pcc.me.uk>
Sat, 13 Dec 2014 02:25:57 +0000 (02:25 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@224179 91177308-0d34-0410-b5e6-96231b3b80d8

bindings/go/llvm/IRBindings.cpp
bindings/go/llvm/IRBindings.h
bindings/go/llvm/ir.go

index e471746098ea6ad5d1edb72f8df312af9347d06f..fac4126acda34155eeca61ee2012731af8ec041f 100644 (file)
@@ -50,6 +50,10 @@ void LLVMRemoveFunctionAttr2(LLVMValueRef Fn, uint64_t PA) {
   Func->setAttributes(PALnew);
 }
 
+LLVMMetadataRef LLVMConstantAsMetadata(LLVMValueRef C) {
+  return wrap(ConstantAsMetadata::get(unwrap<Constant>(C)));
+}
+
 LLVMMetadataRef LLVMMDString2(LLVMContextRef C, const char *Str, unsigned SLen) {
   return wrap(MDString::get(*unwrap(C), StringRef(Str, SLen)));
 }
index fab41f228a8a5148476f0b1bcf2c078b485a8792..a53e178f1e0c2212828454067ecf292618f85b27 100644 (file)
@@ -37,6 +37,8 @@ void LLVMAddFunctionAttr2(LLVMValueRef Fn, uint64_t PA);
 uint64_t LLVMGetFunctionAttr2(LLVMValueRef Fn);
 void LLVMRemoveFunctionAttr2(LLVMValueRef Fn, uint64_t PA);
 
+LLVMMetadataRef LLVMConstantAsMetadata(LLVMValueRef Val);
+
 LLVMMetadataRef LLVMMDString2(LLVMContextRef C, const char *Str, unsigned SLen);
 LLVMMetadataRef LLVMMDNode2(LLVMContextRef C, LLVMMetadataRef *MDs,
                             unsigned Count);
index f4b07afa53c604437542fc3efab25cd6d89c62e8..e5916a1bacf91150abaf8759c017dc0132ba9b75 100644 (file)
@@ -754,6 +754,10 @@ func (c Context) TemporaryMDNode(mds []Metadata) (md Metadata) {
        md.C = C.LLVMTemporaryMDNode(c.C, ptr, nvals)
        return
 }
+func (v Value) ConstantAsMetadata() (md Metadata) {
+       md.C = C.LLVMConstantAsMetadata(v.C)
+       return
+}
 
 // Operations on scalar constants
 func ConstInt(t Type, n uint64, signExtend bool) (v Value) {