Add optional JIT support for expression evaluation.

Поиск
Список
Период
Сортировка
От Andres Freund
Тема Add optional JIT support for expression evaluation.
Дата
Msg-id 20170401074141.jgzageyn3fzshdf3@alap3.anarazel.de
обсуждение исходный текст
Ответы Re: Add optional JIT support for expression evaluation.  (Simon Riggs <simon@2ndquadrant.com>)
Список pgsql-committers
Based on the infrastructure added in b8d7f053c5c2b, this allows
expressions in expensive queries to be compiled to native code.  In
TPC-H this yields up to 40% of speedups.

Whenever a query has a total cost over jit_expression_minimum, all
expressions in it will be JIT compiled.  That allows to perform JIT
compilation of all expressions in one go, which is a lot more
efficient.


Originally slated for v11, discussions at pgconf.us convinced me to
add this to v10.

Author: Andres Freund
Reviewed-By: Robert Haas, Heikki Linnakangas
Discussion: http://postgr.es/m/20161206034955.bh33paeralxbtluv@alap3.anarazel.de

Branch
------
master

Details
-------
http://git.postgresql.org/pg/commitdiff/d31084e9d1118b25fd16580d9d8c2924b5740dff

Modified Files
--------------
 configure                              |  109 ++
 configure.in                           |   37 +
 src/Makefile.global.in                 |   12 +
 src/backend/Makefile                   |    8 +
 src/backend/access/common/heaptuple.c  | 1438 +++++++++++++++--
 src/backend/access/common/tupdesc.c    |    6 +
 src/backend/executor/Makefile          |    6 +-
 src/backend/executor/execExprCompile.c | 2724 ++++++++++++++++++++++++++++++++
 src/backend/executor/execExpr.c        |  271 +++-
 src/backend/executor/execExprInterp.c  |  202 ++-
 src/backend/executor/execMain.c        |    5 +
 src/backend/executor/execTuples.c      |   32 +
 src/backend/executor/nodeAgg.c         |  393 ++---
 src/backend/executor/nodeHash.c        |   21 +-
 src/backend/lib/Makefile               |    5 +-
 src/backend/lib/llvmjit.c              |  324 ++++
 src/backend/lib/llvmjit_profile.cpp    |   33 +
 src/backend/utils/misc/guc.c           |   50 +
 src/backend/utils/resowner/resowner.c  |   32 +
 src/include/access/tupdesc.h           |    8 +
 src/include/executor/execExpr.h        |   55 +-
 src/include/executor/executor.h        |    7 +-
 src/include/executor/hashjoin.h        |    2 +
 src/include/executor/nodeAgg.h         |  273 ++++
 src/include/executor/tuptable.h        |    7 +-
 src/include/lib/llvmjit.h              |   45 +
 src/include/nodes/execnodes.h          |    8 +-
 src/include/pg_config.h.in             |    3 +
 src/include/utils/resowner_private.h   |    7 +
 29 files changed, 5689 insertions(+), 434 deletions(-)


В списке pgsql-committers по дате отправления:

Предыдущее
От: Andres Freund
Дата:
Сообщение: Vendor LLVM 4.0.
Следующее
От: Thomas Munro
Дата:
Сообщение: Re: Vendor LLVM 4.0.