mirror of
https://github.com/postgres/postgres.git
synced 2025-07-02 09:02:37 +03:00
Adapt to LLVM 7+ Orc API changes.
This is mostly done to be able to validate features and fixes submitted to LLVM. Given the size of these changes that seems acceptable. Author: Andres Freund
This commit is contained in:
@ -527,13 +527,17 @@ llvm_compile_module(LLVMJitContext *context)
|
|||||||
* faster instruction selection mechanism is used.
|
* faster instruction selection mechanism is used.
|
||||||
*/
|
*/
|
||||||
INSTR_TIME_SET_CURRENT(starttime);
|
INSTR_TIME_SET_CURRENT(starttime);
|
||||||
#if LLVM_VERSION_MAJOR < 5
|
#if LLVM_VERSION_MAJOR > 6
|
||||||
{
|
{
|
||||||
orc_handle = LLVMOrcAddEagerlyCompiledIR(compile_orc, context->module,
|
if (LLVMOrcAddEagerlyCompiledIR(compile_orc, &orc_handle, context->module,
|
||||||
llvm_resolve_symbol, NULL);
|
llvm_resolve_symbol, NULL))
|
||||||
LLVMDisposeModule(context->module);
|
{
|
||||||
|
elog(ERROR, "failed to JIT module");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* LLVMOrcAddEagerlyCompiledIR takes ownership of the module */
|
||||||
}
|
}
|
||||||
#else
|
#elif LLVM_VERSION_MAJOR > 4
|
||||||
{
|
{
|
||||||
LLVMSharedModuleRef smod;
|
LLVMSharedModuleRef smod;
|
||||||
|
|
||||||
@ -545,6 +549,12 @@ llvm_compile_module(LLVMJitContext *context)
|
|||||||
}
|
}
|
||||||
LLVMOrcDisposeSharedModuleRef(smod);
|
LLVMOrcDisposeSharedModuleRef(smod);
|
||||||
}
|
}
|
||||||
|
#else /* LLVM 4.0 and 3.9 */
|
||||||
|
{
|
||||||
|
orc_handle = LLVMOrcAddEagerlyCompiledIR(compile_orc, context->module,
|
||||||
|
llvm_resolve_symbol, NULL);
|
||||||
|
LLVMDisposeModule(context->module);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
INSTR_TIME_SET_CURRENT(endtime);
|
INSTR_TIME_SET_CURRENT(endtime);
|
||||||
INSTR_TIME_ACCUM_DIFF(context->base.emission_counter,
|
INSTR_TIME_ACCUM_DIFF(context->base.emission_counter,
|
||||||
|
Reference in New Issue
Block a user