jit: Reference expression step functions via llvmjit_types.
Andres Freund <andres@anarazel.de>
jit: Reference expression step functions via llvmjit_types.
The main benefit of doing so is that this allows llvm to ensure that
types match - previously that'd only be detected by a crash within the
called function. There were a number of cases where we passed a
superfluous parameter...
To avoid needing to add all the functions to llvmjit.{c,h}, instead
get them from the llvm module for llvmjit_types.c. Also use that for
the functions from llvmjit_types already in llvmjit.h.
Author: Soumyadeep Chakraborty and Andres Freund
Discussion: https://postgr.es/m/CADwEdooww3wZv-sXSfatzFRwMuwa186LyTwkBfwEW6NjtooBPA@mail.gmail.com
Files
| Path | Change | +/− |
|---|---|---|
| src/backend/jit/llvm/llvmjit.c | modified | +40 −57 |
| src/backend/jit/llvm/llvmjit_deform.c | modified | +3 −3 |
| src/backend/jit/llvm/llvmjit_expr.c | modified | +74 −81 |
| src/backend/jit/llvm/llvmjit_types.c | modified | +37 −7 |
| src/include/jit/llvmjit.h | modified | +3 −10 |
Discussion
- WIP: expression evaluation improvements 25 messages · 2019-10-23 → 2021-11-05