diff options
author | Andres Freund <andres@anarazel.de> | 2018-07-22 21:13:20 -0700 |
---|---|---|
committer | Andres Freund <andres@anarazel.de> | 2018-07-22 21:13:34 -0700 |
commit | e9a9843e1380c42a22fe5a89229afa98f1668ef3 (patch) | |
tree | 836264d3b5c70f6cfdcab660dc33e698e91bbd66 /src/backend/jit/llvm/llvmjit.c | |
parent | a38b833a7ca41c9f68fbaebc93762627ea527c26 (diff) | |
download | postgresql-e9a9843e1380c42a22fe5a89229afa98f1668ef3.tar.gz postgresql-e9a9843e1380c42a22fe5a89229afa98f1668ef3.zip |
LLVMJIT: Adapt to API changes in gdb and perf support.
During the work of upstreaming my previous patches for gdb and perf
support the API changed. Adapt. Normally this wouldn't necessarily be
something to backpatch, but the previous API wasn't upstream, and at
least the gdb support is quite useful for debugging.
Author: Andres Freund
Backpatch: 11, where LLVM based JIT support was added.
Diffstat (limited to 'src/backend/jit/llvm/llvmjit.c')
-rw-r--r-- | src/backend/jit/llvm/llvmjit.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/src/backend/jit/llvm/llvmjit.c b/src/backend/jit/llvm/llvmjit.c index 955c9667139..640c27fc408 100644 --- a/src/backend/jit/llvm/llvmjit.c +++ b/src/backend/jit/llvm/llvmjit.c @@ -28,6 +28,7 @@ #include <llvm-c/BitReader.h> #include <llvm-c/BitWriter.h> #include <llvm-c/Core.h> +#include <llvm-c/ExecutionEngine.h> #include <llvm-c/OrcBindings.h> #include <llvm-c/Support.h> #include <llvm-c/Target.h> @@ -666,18 +667,22 @@ llvm_session_initialize(void) llvm_opt0_orc = LLVMOrcCreateInstance(llvm_opt0_targetmachine); llvm_opt3_orc = LLVMOrcCreateInstance(llvm_opt3_targetmachine); -#if defined(HAVE_DECL_LLVMORCREGISTERGDB) && HAVE_DECL_LLVMORCREGISTERGDB +#if defined(HAVE_DECL_LLVMCREATEGDBREGISTRATIONLISTENER) && HAVE_DECL_LLVMCREATEGDBREGISTRATIONLISTENER if (jit_debugging_support) { - LLVMOrcRegisterGDB(llvm_opt0_orc); - LLVMOrcRegisterGDB(llvm_opt3_orc); + LLVMJITEventListenerRef l = LLVMCreateGDBRegistrationListener(); + + LLVMOrcRegisterJITEventListener(llvm_opt0_orc, l); + LLVMOrcRegisterJITEventListener(llvm_opt3_orc, l); } #endif -#if defined(HAVE_DECL_LLVMORCREGISTERPERF) && HAVE_DECL_LLVMORCREGISTERPERF +#if defined(HAVE_DECL_LLVMCREATEPERFJITEVENTLISTENER) && HAVE_DECL_LLVMCREATEPERFJITEVENTLISTENER if (jit_profiling_support) { - LLVMOrcRegisterPerf(llvm_opt0_orc); - LLVMOrcRegisterPerf(llvm_opt3_orc); + LLVMJITEventListenerRef l = LLVMCreatePerfJITEventListener(); + + LLVMOrcRegisterJITEventListener(llvm_opt0_orc, l); + LLVMOrcRegisterJITEventListener(llvm_opt3_orc, l); } #endif |