jit: Supply LLVMGlobalGetValueType() for LLVM < 8.
authorThomas Munro
Wed, 18 Oct 2023 14:01:55 +0000 (03:01 +1300)
committerThomas Munro
Wed, 18 Oct 2023 14:03:27 +0000 (03:03 +1300)
Commit 37d5babb used this C API function while adding support for LLVM
16 and opaque pointers, but it's not available in LLVM 7 and older.
Provide it in our own llvmjit_wrap.cpp.  It just calls a C++ function
that pre-dates LLVM 3.9, our minimum target.

Back-patch to 12, like 37d5babb.

Discussion: https://postgr.es/m/CA%2BhUKGKnLnJnWrkr%3D4mSGhE5FuTK55FY15uULR7%3Dzzc%3DwX4Nqw%40mail.gmail.com

src/backend/jit/llvm/llvmjit_wrap.cpp
src/include/jit/llvmjit.h

index 2be12c3e1af482f3989c59f314fd8e96fe42f44c..2f450aaac5a958557a23c8b0b42fa0e3e6bb20ed 100644 (file)
@@ -88,3 +88,11 @@ LLVMGetFunctionType(LLVMValueRef r)
 {
    return llvm::wrap(llvm::unwrap(r)->getFunctionType());
 }
+
+#if LLVM_VERSION_MAJOR < 8
+LLVMTypeRef
+LLVMGlobalGetValueType(LLVMValueRef g)
+{
+   return llvm::wrap(llvm::unwrap(g)->getValueType());
+}
+#endif
index 89e21d4ae9b4ca551e3ab473f8bfa26be2470693..fe769e0c187f178fd301ee8ec98011e0ce62c99c 100644 (file)
@@ -141,6 +141,10 @@ extern unsigned LLVMGetAttributeCountAtIndexPG(LLVMValueRef F, uint32 Idx);
 extern LLVMTypeRef LLVMGetFunctionReturnType(LLVMValueRef r);
 extern LLVMTypeRef LLVMGetFunctionType(LLVMValueRef r);
 
+#if LLVM_MAJOR_VERSION < 8
+extern LLVMTypeRef LLVMGlobalGetValueType(LLVMValueRef g);
+#endif
+
 #ifdef __cplusplus
 } /* extern "C" */
 #endif