0003-jit-Drop-LLVMGetFunctionReturnType-wrapper.patch
text/x-patch
Filename: 0003-jit-Drop-LLVMGetFunctionReturnType-wrapper.patch
Type: text/x-patch
Part: 2
Message:
Minor LLVM cleanups
From 83974d87ad3dbaad5f801d8870fe4ea58f8f9885 Mon Sep 17 00:00:00 2001
From: Thomas Munro <thomas.munro@gmail.com>
Date: Fri, 28 Nov 2025 01:30:50 +1300
Subject: [PATCH 3/6] jit: Drop LLVMGetFunctionReturnType() wrapper.
Commit 37d5babb added this C wrapper function to reach the C++ function
llvm::Function::getReturnType(), but it's redundant since you can call
the existing LLVMGetReturnType() given a function type at the cost of
one extra call.
---
src/backend/jit/llvm/llvmjit.c | 4 ++--
src/backend/jit/llvm/llvmjit_wrap.cpp | 6 ------
src/include/jit/llvmjit.h | 1 -
3 files changed, 2 insertions(+), 9 deletions(-)
diff --git a/src/backend/jit/llvm/llvmjit.c b/src/backend/jit/llvm/llvmjit.c
index 0e67267e807..6cd457e429a 100644
--- a/src/backend/jit/llvm/llvmjit.c
+++ b/src/backend/jit/llvm/llvmjit.c
@@ -521,7 +521,7 @@ llvm_copy_attributes(LLVMValueRef v_from, LLVMValueRef v_to)
/* copy function attributes */
llvm_copy_attributes_at_index(v_from, v_to, LLVMAttributeFunctionIndex);
- if (LLVMGetTypeKind(LLVMGetFunctionReturnType(v_to)) != LLVMVoidTypeKind)
+ if (LLVMGetTypeKind(LLVMGetReturnType(LLVMGetFunctionType(v_to))) != LLVMVoidTypeKind)
{
/* and the return value attributes */
llvm_copy_attributes_at_index(v_from, v_to, LLVMAttributeReturnIndex);
@@ -960,7 +960,7 @@ load_return_type(LLVMModuleRef mod, const char *name)
if (!value)
elog(ERROR, "function %s is unknown", name);
- typ = LLVMGetFunctionReturnType(value); /* in llvmjit_wrap.cpp */
+ typ = LLVMGetReturnType(LLVMGetFunctionType(value));
return typ;
}
diff --git a/src/backend/jit/llvm/llvmjit_wrap.cpp b/src/backend/jit/llvm/llvmjit_wrap.cpp
index c31a57b8563..4033e730d7c 100644
--- a/src/backend/jit/llvm/llvmjit_wrap.cpp
+++ b/src/backend/jit/llvm/llvmjit_wrap.cpp
@@ -34,12 +34,6 @@ extern "C"
* C-API extensions.
*/
-LLVMTypeRef
-LLVMGetFunctionReturnType(LLVMValueRef r)
-{
- return llvm::wrap(llvm::unwrap<llvm::Function>(r)->getReturnType());
-}
-
LLVMTypeRef
LLVMGetFunctionType(LLVMValueRef r)
{
diff --git a/src/include/jit/llvmjit.h b/src/include/jit/llvmjit.h
index b3c75022f55..1a8369005ef 100644
--- a/src/include/jit/llvmjit.h
+++ b/src/include/jit/llvmjit.h
@@ -139,7 +139,6 @@ extern LLVMValueRef slot_compile_deform(struct LLVMJitContext *context, TupleDes
* Error handling related functions.
****************************************************************************
*/
-extern LLVMTypeRef LLVMGetFunctionReturnType(LLVMValueRef r);
extern LLVMTypeRef LLVMGetFunctionType(LLVMValueRef r);
#ifdef USE_LLVM_BACKPORT_SECTION_MEMORY_MANAGER
extern LLVMOrcObjectLayerRef LLVMOrcCreateRTDyldObjectLinkingLayerWithSafeSectionMemoryManager(LLVMOrcExecutionSessionRef ES);
--
2.51.2