[llvm] a702fa2 - [ORC] Make LLVMOrcLLJITBuilderSetJITTargetMachineBuilder consume as advertised.
Lang Hames via llvm-commits
llvm-commits at lists.llvm.org
Mon Apr 26 22:28:21 PDT 2021
Author: Lang Hames
Date: 2021-04-26T22:26:38-07:00
New Revision: a702fa2a04221a3b26abd7a9ef3d908f351a6eb2
URL: https://github.com/llvm/llvm-project/commit/a702fa2a04221a3b26abd7a9ef3d908f351a6eb2
DIFF: https://github.com/llvm/llvm-project/commit/a702fa2a04221a3b26abd7a9ef3d908f351a6eb2.diff
LOG: [ORC] Make LLVMOrcLLJITBuilderSetJITTargetMachineBuilder consume as advertised.
This should fix some of the memory leaks seen in the ORC C API test case.
Added:
Modified:
llvm/include/llvm-c/Orc.h
llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm-c/Orc.h b/llvm/include/llvm-c/Orc.h
index 78f6f28a4657..76692ba89def 100644
--- a/llvm/include/llvm-c/Orc.h
+++ b/llvm/include/llvm-c/Orc.h
@@ -635,8 +635,9 @@ LLVMErrorRef LLVMOrcJITTargetMachineBuilderDetectHost(
*
* This operation takes ownership of the given TargetMachine and destroys it
* before returing. The resulting JITTargetMachineBuilder is owned by the client
- * and must be passed to a consuming operation (e.g. LLVMOrcCreateLLJITBuilder)
- * or disposed of by calling LLVMOrcDisposeJITTargetMachineBuilder.
+ * and must be passed to a consuming operation (e.g.
+ * LLVMOrcLLJITBuilderSetJITTargetMachineBuilder) or disposed of by calling
+ * LLVMOrcDisposeJITTargetMachineBuilder.
*/
LLVMOrcJITTargetMachineBuilderRef
LLVMOrcJITTargetMachineBuilderCreateFromTargetMachine(LLVMTargetMachineRef TM);
diff --git a/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp b/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
index 419f6e81e6e3..5f9cb10be588 100644
--- a/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
+++ b/llvm/lib/ExecutionEngine/Orc/OrcV2CBindings.cpp
@@ -513,7 +513,8 @@ void LLVMOrcDisposeLLJITBuilder(LLVMOrcLLJITBuilderRef Builder) {
void LLVMOrcLLJITBuilderSetJITTargetMachineBuilder(
LLVMOrcLLJITBuilderRef Builder, LLVMOrcJITTargetMachineBuilderRef JTMB) {
- unwrap(Builder)->setJITTargetMachineBuilder(*unwrap(JTMB));
+ unwrap(Builder)->setJITTargetMachineBuilder(std::move(*unwrap(JTMB)));
+ LLVMOrcDisposeJITTargetMachineBuilder(JTMB);
}
void LLVMOrcLLJITBuilderSetObjectLinkingLayerCreator(
More information about the llvm-commits
mailing list