pgsql: LLVMJIT: Check for 'noinline' attribute in recursively inlined f

2018-07-25 Thread Andres Freund
LLVMJIT: Check for 'noinline' attribute in recursively inlined functions. Previously the attribute was only checked for external functions inlined, not "static" functions that had to be inlined as dependencies. This isn't really a bug, but makes debugging a bit harder. The new behaviour also make

pgsql: LLVMJIT: Release JIT context after running ExprContext shutdown

2018-07-25 Thread Andres Freund
LLVMJIT: Release JIT context after running ExprContext shutdown callbacks. Due to inlining it previously was possible that an ExprContext's shutdown callback pointed to a JITed function. As the JIT context previously was shut down before the shutdown callbacks were called, that could lead to segfa

pgsql: LLVMJIT: Release JIT context after running ExprContext shutdown

2018-07-25 Thread Andres Freund
LLVMJIT: Release JIT context after running ExprContext shutdown callbacks. Due to inlining it previously was possible that an ExprContext's shutdown callback pointed to a JITed function. As the JIT context previously was shut down before the shutdown callbacks were called, that could lead to segfa

pgsql: LLVMJIT: Check for 'noinline' attribute in recursively inlined f

2018-07-25 Thread Andres Freund
LLVMJIT: Check for 'noinline' attribute in recursively inlined functions. Previously the attribute was only checked for external functions inlined, not "static" functions that had to be inlined as dependencies. This isn't really a bug, but makes debugging a bit harder. The new behaviour also make