summaryrefslogtreecommitdiffstats
path: root/llvm/bindings/go
diff options
context:
space:
mode:
authorRobert Widmann <devteam.codafi@gmail.com>2018-05-10 18:09:53 +0000
committerRobert Widmann <devteam.codafi@gmail.com>2018-05-10 18:09:53 +0000
commita428eba85eb23b4b614dbf9555169592cd8c2511 (patch)
treed6ff9d710d74e7bda151975011a553cfecb33e93 /llvm/bindings/go
parent262e09018b60d5c075f28c1e74b4c3a792f55969 (diff)
downloadbcm5719-llvm-a428eba85eb23b4b614dbf9555169592cd8c2511.tar.gz
bcm5719-llvm-a428eba85eb23b4b614dbf9555169592cd8c2511.zip
[LLVM-C] Move DIBuilder Bindings For Temporary MDNodes
Summary: Move LLVMTemporaryMDNode and LLVMMetadataReplaceAllUsesWith to the C bindings and add LLVMDeleteTemporaryMDNode for deleting non-RAUW'ed temporary nodes. Reviewers: whitequark, harlanhaskins, deadalnix Reviewed By: whitequark Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D46632 llvm-svn: 332010
Diffstat (limited to 'llvm/bindings/go')
-rw-r--r--llvm/bindings/go/llvm/IRBindings.cpp13
-rw-r--r--llvm/bindings/go/llvm/IRBindings.h4
-rw-r--r--llvm/bindings/go/llvm/dibuilder.go14
-rw-r--r--llvm/bindings/go/llvm/ir.go13
4 files changed, 14 insertions, 30 deletions
diff --git a/llvm/bindings/go/llvm/IRBindings.cpp b/llvm/bindings/go/llvm/IRBindings.cpp
index f161feefa1d..b8e3063eb9a 100644
--- a/llvm/bindings/go/llvm/IRBindings.cpp
+++ b/llvm/bindings/go/llvm/IRBindings.cpp
@@ -36,13 +36,6 @@ LLVMMetadataRef LLVMMDNode2(LLVMContextRef C, LLVMMetadataRef *MDs,
MDNode::get(*unwrap(C), ArrayRef<Metadata *>(unwrap(MDs), Count)));
}
-LLVMMetadataRef LLVMTemporaryMDNode(LLVMContextRef C, LLVMMetadataRef *MDs,
- unsigned Count) {
- return wrap(MDTuple::getTemporary(*unwrap(C),
- ArrayRef<Metadata *>(unwrap(MDs), Count))
- .release());
-}
-
void LLVMAddNamedMetadataOperand2(LLVMModuleRef M, const char *name,
LLVMMetadataRef Val) {
NamedMDNode *N = unwrap(M)->getOrInsertNamedMetadata(name);
@@ -58,12 +51,6 @@ void LLVMSetMetadata2(LLVMValueRef Inst, unsigned KindID, LLVMMetadataRef MD) {
unwrap<Instruction>(Inst)->setMetadata(KindID, N);
}
-void LLVMMetadataReplaceAllUsesWith(LLVMMetadataRef MD, LLVMMetadataRef New) {
- auto *Node = unwrap<MDNode>(MD);
- Node->replaceAllUsesWith(unwrap<Metadata>(New));
- MDNode::deleteTemporary(Node);
-}
-
void LLVMSetCurrentDebugLocation2(LLVMBuilderRef Bref, unsigned Line,
unsigned Col, LLVMMetadataRef Scope,
LLVMMetadataRef InlinedAt) {
diff --git a/llvm/bindings/go/llvm/IRBindings.h b/llvm/bindings/go/llvm/IRBindings.h
index f7fe374669a..a2f7d2db57d 100644
--- a/llvm/bindings/go/llvm/IRBindings.h
+++ b/llvm/bindings/go/llvm/IRBindings.h
@@ -38,15 +38,11 @@ LLVMMetadataRef LLVMConstantAsMetadata(LLVMValueRef Val);
LLVMMetadataRef LLVMMDString2(LLVMContextRef C, const char *Str, unsigned SLen);
LLVMMetadataRef LLVMMDNode2(LLVMContextRef C, LLVMMetadataRef *MDs,
unsigned Count);
-LLVMMetadataRef LLVMTemporaryMDNode(LLVMContextRef C, LLVMMetadataRef *MDs,
- unsigned Count);
void LLVMAddNamedMetadataOperand2(LLVMModuleRef M, const char *name,
LLVMMetadataRef Val);
void LLVMSetMetadata2(LLVMValueRef Inst, unsigned KindID, LLVMMetadataRef MD);
-void LLVMMetadataReplaceAllUsesWith(LLVMMetadataRef MD, LLVMMetadataRef New);
-
void LLVMSetCurrentDebugLocation2(LLVMBuilderRef Bref, unsigned Line,
unsigned Col, LLVMMetadataRef Scope,
LLVMMetadataRef InlinedAt);
diff --git a/llvm/bindings/go/llvm/dibuilder.go b/llvm/bindings/go/llvm/dibuilder.go
index e8318b88ca3..ce7247af15b 100644
--- a/llvm/bindings/go/llvm/dibuilder.go
+++ b/llvm/bindings/go/llvm/dibuilder.go
@@ -585,3 +585,17 @@ func boolToCInt(v bool) C.int {
}
return 0
}
+
+//-------------------------------------------------------------------------
+// llvm.Metadata
+//-------------------------------------------------------------------------
+
+func (c Context) TemporaryMDNode(mds []Metadata) (md Metadata) {
+ ptr, nvals := llvmMetadataRefs(mds)
+ md.C = C.LLVMTemporaryMDNode(c.C, ptr, C.size_t(nvals))
+ return
+}
+
+func (md Metadata) ReplaceAllUsesWith(new Metadata) {
+ C.LLVMMetadataReplaceAllUsesWith(md.C, new.C)
+}
diff --git a/llvm/bindings/go/llvm/ir.go b/llvm/bindings/go/llvm/ir.go
index 988db49f861..a336c0ef44c 100644
--- a/llvm/bindings/go/llvm/ir.go
+++ b/llvm/bindings/go/llvm/ir.go
@@ -784,11 +784,6 @@ func (c Context) MDNode(mds []Metadata) (md Metadata) {
md.C = C.LLVMMDNode2(c.C, ptr, nvals)
return
}
-func (c Context) TemporaryMDNode(mds []Metadata) (md Metadata) {
- ptr, nvals := llvmMetadataRefs(mds)
- md.C = C.LLVMTemporaryMDNode(c.C, ptr, nvals)
- return
-}
func (v Value) ConstantAsMetadata() (md Metadata) {
md.C = C.LLVMConstantAsMetadata(v.C)
return
@@ -1916,11 +1911,3 @@ func (pm PassManager) FinalizeFunc() bool { return C.LLVMFinalizeFunctionPassMan
// the module provider.
// See llvm::PassManagerBase::~PassManagerBase.
func (pm PassManager) Dispose() { C.LLVMDisposePassManager(pm.C) }
-
-//-------------------------------------------------------------------------
-// llvm.Metadata
-//-------------------------------------------------------------------------
-
-func (md Metadata) ReplaceAllUsesWith(new Metadata) {
- C.LLVMMetadataReplaceAllUsesWith(md.C, new.C)
-}
OpenPOWER on IntegriCloud